From 6aa3bf99dbd4187c83167dec18ebe974421d57bc Mon Sep 17 00:00:00 2001 From: Georgey Date: Wed, 5 Jul 2017 11:44:38 +0530 Subject: Updated help folder --- help/en_US/cbcintlinprog.xml | 369 +++++++++++++++ help/en_US/fgoalattain.xml | 486 ++++++++++++++++---- help/en_US/fminbnd.xml | 194 +++++--- help/en_US/fmincon.xml | 475 ++++++++++++------- help/en_US/fminimax.xml | 385 +++++++++++++--- help/en_US/fminunc.xml | 181 +++++--- help/en_US/intfminbnd.xml | 242 ++++++++++ help/en_US/intfmincon.xml | 509 ++++++++++++++++++++ help/en_US/intfminimax.xml | 511 +++++++++++++++++++++ help/en_US/intfminunc.xml | 242 ++++++++++ help/en_US/intqpipopt.xml | 403 ++++++++++++++++ help/en_US/linprog.xml | 237 +++++++--- help/en_US/lsqlin.xml | 335 +++++++++++--- help/en_US/lsqnonlin.xml | 171 +++++-- help/en_US/lsqnonneg.xml | 142 ++++-- help/en_US/master_help.xml | 300 ++++++------ help/en_US/qpipopt.xml | 311 ++++++++++--- help/en_US/qpipoptmat.xml | 336 +++++++++++--- help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS | Bin 9489 -> 11411 bytes .../scilab_en_US_help/JavaHelpSearch/DOCS.TAB | Bin 958 -> 1085 bytes .../en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS | Bin 362 -> 423 bytes .../scilab_en_US_help/JavaHelpSearch/POSITIONS | Bin 60747 -> 91418 bytes help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA | 2 +- help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP | Bin 18432 -> 20480 bytes help/en_US/scilab_en_US_help/ScilabCaution.png | Bin 513 -> 507 bytes help/en_US/scilab_en_US_help/ScilabEdit.png | Bin 414 -> 413 bytes help/en_US/scilab_en_US_help/ScilabImportant.png | Bin 637 -> 617 bytes help/en_US/scilab_en_US_help/ScilabNote.png | Bin 687 -> 663 bytes help/en_US/scilab_en_US_help/ScilabTip.png | Bin 687 -> 663 bytes help/en_US/scilab_en_US_help/ScilabWarning.png | Bin 513 -> 507 bytes .../_LaTeX_cbcintlinprog.xml_1.png | Bin 0 -> 3675 bytes .../_LaTeX_cbcintlinprog.xml_2.png | Bin 0 -> 12221 bytes .../_LaTeX_cbcintlinprog.xml_3.png | Bin 0 -> 1893 bytes .../_LaTeX_cbcintlinprog.xml_4.png | Bin 0 -> 5815 bytes .../_LaTeX_cbcintlinprog.xml_5.png | Bin 0 -> 12275 bytes .../_LaTeX_cbcintlinprog.xml_6.png | Bin 0 -> 11353 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png | Bin 4343 -> 170 bytes .../_LaTeX_fgoalattain.xml_10.png | Bin 0 -> 1185 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png | Bin 0 -> 170 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png | Bin 0 -> 4910 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png | Bin 0 -> 9479 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png | Bin 0 -> 1361 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png | Bin 0 -> 742 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png | Bin 0 -> 842 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png | Bin 0 -> 1108 bytes .../scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png | Bin 0 -> 1107 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_1.png | Bin 1792 -> 214 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_2.png | Bin 0 -> 268 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_3.png | Bin 0 -> 252 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_4.png | Bin 0 -> 251 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_5.png | Bin 0 -> 1955 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_6.png | Bin 0 -> 2414 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_7.png | Bin 0 -> 3922 bytes .../scilab_en_US_help/_LaTeX_fminbnd.xml_8.png | Bin 0 -> 2734 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_1.png | Bin 3781 -> 3880 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_10.png | Bin 0 -> 3386 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_11.png | Bin 0 -> 3493 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_12.png | Bin 0 -> 2742 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_2.png | Bin 0 -> 3420 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_3.png | Bin 0 -> 742 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_4.png | Bin 0 -> 842 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_5.png | Bin 0 -> 898 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_6.png | Bin 0 -> 3386 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_7.png | Bin 0 -> 3493 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_8.png | Bin 0 -> 2742 bytes .../scilab_en_US_help/_LaTeX_fmincon.xml_9.png | Bin 0 -> 898 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_1.png | Bin 5367 -> 4880 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_2.png | Bin 1295 -> 1297 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_3.png | Bin 0 -> 4342 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_4.png | Bin 0 -> 1361 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_5.png | Bin 0 -> 742 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_6.png | Bin 0 -> 842 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_7.png | Bin 0 -> 898 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_8.png | Bin 0 -> 1107 bytes .../scilab_en_US_help/_LaTeX_fminimax.xml_9.png | Bin 0 -> 1185 bytes .../scilab_en_US_help/_LaTeX_fminunc.xml_1.png | Bin 714 -> 729 bytes .../scilab_en_US_help/_LaTeX_fminunc.xml_2.png | Bin 0 -> 983 bytes .../scilab_en_US_help/_LaTeX_fminunc.xml_3.png | Bin 0 -> 1486 bytes .../scilab_en_US_help/_LaTeX_fminunc.xml_4.png | Bin 0 -> 737 bytes .../scilab_en_US_help/_LaTeX_fminunc.xml_5.png | Bin 0 -> 1486 bytes .../scilab_en_US_help/_LaTeX_fminunc.xml_6.png | Bin 0 -> 737 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png | Bin 0 -> 214 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png | Bin 0 -> 268 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png | Bin 0 -> 252 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png | Bin 0 -> 251 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png | Bin 0 -> 1954 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png | Bin 0 -> 5787 bytes .../scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png | Bin 0 -> 4291 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_1.png | Bin 0 -> 4468 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_2.png | Bin 0 -> 4960 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_3.png | Bin 0 -> 742 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_4.png | Bin 0 -> 842 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_5.png | Bin 0 -> 4639 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_6.png | Bin 0 -> 7448 bytes .../scilab_en_US_help/_LaTeX_intfmincon.xml_7.png | Bin 0 -> 4825 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_1.png | Bin 0 -> 5072 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_2.png | Bin 0 -> 1297 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_3.png | Bin 0 -> 5838 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_4.png | Bin 0 -> 1361 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_5.png | Bin 0 -> 742 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_6.png | Bin 0 -> 842 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_7.png | Bin 0 -> 898 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_8.png | Bin 0 -> 1107 bytes .../scilab_en_US_help/_LaTeX_intfminimax.xml_9.png | Bin 0 -> 1185 bytes .../scilab_en_US_help/_LaTeX_intfminunc.xml_1.png | Bin 0 -> 1254 bytes .../scilab_en_US_help/_LaTeX_intfminunc.xml_2.png | Bin 0 -> 2392 bytes .../scilab_en_US_help/_LaTeX_intfminunc.xml_3.png | Bin 0 -> 3024 bytes .../scilab_en_US_help/_LaTeX_intfminunc.xml_4.png | Bin 0 -> 2222 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png | Bin 0 -> 3972 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png | Bin 0 -> 4786 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png | Bin 0 -> 1662 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png | Bin 0 -> 1901 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png | Bin 0 -> 1865 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png | Bin 0 -> 5127 bytes .../scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png | Bin 0 -> 6590 bytes .../scilab_en_US_help/_LaTeX_linprog.xml_1.png | Bin 2509 -> 2750 bytes .../scilab_en_US_help/_LaTeX_linprog.xml_2.png | Bin 0 -> 4262 bytes .../scilab_en_US_help/_LaTeX_linprog.xml_3.png | Bin 0 -> 807 bytes .../scilab_en_US_help/_LaTeX_linprog.xml_4.png | Bin 0 -> 1097 bytes .../scilab_en_US_help/_LaTeX_linprog.xml_5.png | Bin 0 -> 4608 bytes .../scilab_en_US_help/_LaTeX_linprog.xml_6.png | Bin 0 -> 4223 bytes .../scilab_en_US_help/_LaTeX_lsqlin.xml_1.png | Bin 3046 -> 2557 bytes .../scilab_en_US_help/_LaTeX_lsqlin.xml_2.png | Bin 0 -> 6450 bytes .../scilab_en_US_help/_LaTeX_lsqlin.xml_3.png | Bin 0 -> 791 bytes .../scilab_en_US_help/_LaTeX_lsqlin.xml_4.png | Bin 0 -> 1240 bytes .../scilab_en_US_help/_LaTeX_lsqlin.xml_5.png | Bin 0 -> 2355 bytes .../scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png | Bin 1932 -> 1310 bytes .../scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png | Bin 0 -> 4006 bytes .../scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png | Bin 0 -> 878 bytes .../scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png | Bin 1456 -> 1190 bytes .../scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png | Bin 0 -> 4529 bytes .../scilab_en_US_help/_LaTeX_qpipopt.xml_1.png | Bin 3304 -> 3477 bytes .../scilab_en_US_help/_LaTeX_qpipopt.xml_2.png | Bin 0 -> 3701 bytes .../scilab_en_US_help/_LaTeX_qpipopt.xml_3.png | Bin 0 -> 3633 bytes .../scilab_en_US_help/_LaTeX_qpipopt.xml_4.png | Bin 0 -> 3633 bytes .../scilab_en_US_help/_LaTeX_qpipopt.xml_5.png | Bin 0 -> 3807 bytes .../scilab_en_US_help/_LaTeX_qpipopt.xml_6.png | Bin 0 -> 3748 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png | Bin 3148 -> 3602 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png | Bin 0 -> 3179 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png | Bin 0 -> 1420 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png | Bin 0 -> 1905 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png | Bin 0 -> 1865 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png | Bin 0 -> 2399 bytes .../scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png | Bin 0 -> 6590 bytes .../scilab_en_US_help/_LaTeX_symphony.xml_1.png | Bin 3383 -> 3519 bytes .../scilab_en_US_help/_LaTeX_symphony.xml_2.png | Bin 0 -> 12073 bytes .../scilab_en_US_help/_LaTeX_symphony.xml_3.png | Bin 0 -> 6509 bytes .../scilab_en_US_help/_LaTeX_symphonymat.xml_1.png | Bin 3140 -> 3205 bytes .../scilab_en_US_help/_LaTeX_symphonymat.xml_2.png | Bin 0 -> 12221 bytes .../scilab_en_US_help/_LaTeX_symphonymat.xml_3.png | Bin 0 -> 1893 bytes .../scilab_en_US_help/_LaTeX_symphonymat.xml_4.png | Bin 0 -> 5812 bytes .../scilab_en_US_help/_LaTeX_symphonymat.xml_5.png | Bin 0 -> 12275 bytes .../scilab_en_US_help/_LaTeX_symphonymat.xml_6.png | Bin 0 -> 11353 bytes help/en_US/scilab_en_US_help/cbcintlinprog.html | 240 ++++++++++ help/en_US/scilab_en_US_help/fgoalattain.html | 345 ++++++++++---- help/en_US/scilab_en_US_help/fminbnd.html | 139 +++--- help/en_US/scilab_en_US_help/fmincon.html | 331 ++++++------- help/en_US/scilab_en_US_help/fminimax.html | 279 ++++++++--- help/en_US/scilab_en_US_help/fminunc.html | 142 +++--- help/en_US/scilab_en_US_help/index.html | 44 +- help/en_US/scilab_en_US_help/intfminbnd.html | 178 +++++++ help/en_US/scilab_en_US_help/intfmincon.html | 339 ++++++++++++++ help/en_US/scilab_en_US_help/intfminimax.html | 364 +++++++++++++++ help/en_US/scilab_en_US_help/intfminunc.html | 173 +++++++ help/en_US/scilab_en_US_help/intqpipopt.html | 267 +++++++++++ help/en_US/scilab_en_US_help/jhelpmap.jhm | 10 +- help/en_US/scilab_en_US_help/jhelptoc.xml | 10 +- help/en_US/scilab_en_US_help/linprog.html | 138 +++--- help/en_US/scilab_en_US_help/lsqlin.html | 247 +++++++--- help/en_US/scilab_en_US_help/lsqnonlin.html | 125 +++-- help/en_US/scilab_en_US_help/lsqnonneg.html | 100 ++-- help/en_US/scilab_en_US_help/qpipopt.html | 201 +++++--- help/en_US/scilab_en_US_help/qpipoptmat.html | 216 ++++++--- .../section_016165dcad2b2229387faee34442c3dd.html | 285 ++++++++++++ .../section_2122a46e06605359e022857633f38a15.html | 358 +++++++++++++++ .../section_2f30ec7805b02b8760d8add3187208be.html | 85 ++++ .../section_44e1f57c5225357b5fe53cb5fad967e9.html | 394 ++++++++++++++++ .../section_5216548269879268a26b5bc137b91f5d.html | 85 ++++ .../section_5fc7ef02a133896efbd190355314d3fc.html | 285 ++++++++++++ .../section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html | 285 ++++++++++++ .../section_7f9be39cf912aa1e283b946d86a6bd7c.html | 357 ++++++++++++++ .../section_8b595dffcf2928adea151d3ba6836faa.html | 394 ++++++++++++++++ .../section_c78c9c5b46dbea583df3c010a77e5758.html | 285 ++++++++++++ help/en_US/scilab_en_US_help/sym_addConstr.html | 10 +- help/en_US/scilab_en_US_help/sym_addVar.html | 6 +- help/en_US/scilab_en_US_help/sym_close.html | 6 +- .../en_US/scilab_en_US_help/sym_deleteConstrs.html | 6 +- help/en_US/scilab_en_US_help/sym_deleteVars.html | 6 +- .../scilab_en_US_help/sym_getConstrActivity.html | 6 +- .../scilab_en_US_help/sym_getConstrLower.html | 6 +- .../scilab_en_US_help/sym_getConstrRange.html | 6 +- .../scilab_en_US_help/sym_getConstrSense.html | 6 +- .../scilab_en_US_help/sym_getConstrUpper.html | 6 +- help/en_US/scilab_en_US_help/sym_getDblParam.html | 6 +- help/en_US/scilab_en_US_help/sym_getInfinity.html | 6 +- help/en_US/scilab_en_US_help/sym_getIntParam.html | 6 +- help/en_US/scilab_en_US_help/sym_getIterCount.html | 6 +- help/en_US/scilab_en_US_help/sym_getMatrix.html | 6 +- help/en_US/scilab_en_US_help/sym_getNumConstr.html | 6 +- .../scilab_en_US_help/sym_getNumElements.html | 6 +- help/en_US/scilab_en_US_help/sym_getNumVar.html | 6 +- help/en_US/scilab_en_US_help/sym_getObjCoeff.html | 6 +- help/en_US/scilab_en_US_help/sym_getObjSense.html | 6 +- help/en_US/scilab_en_US_help/sym_getObjVal.html | 6 +- .../scilab_en_US_help/sym_getPrimalBound.html | 6 +- help/en_US/scilab_en_US_help/sym_getRhs.html | 6 +- help/en_US/scilab_en_US_help/sym_getStatus.html | 6 +- help/en_US/scilab_en_US_help/sym_getStrParam.html | 6 +- help/en_US/scilab_en_US_help/sym_getVarLower.html | 6 +- help/en_US/scilab_en_US_help/sym_getVarSoln.html | 6 +- help/en_US/scilab_en_US_help/sym_getVarUpper.html | 6 +- help/en_US/scilab_en_US_help/sym_isAbandoned.html | 6 +- help/en_US/scilab_en_US_help/sym_isBinary.html | 6 +- help/en_US/scilab_en_US_help/sym_isContinuous.html | 6 +- help/en_US/scilab_en_US_help/sym_isEnvActive.html | 6 +- help/en_US/scilab_en_US_help/sym_isInfeasible.html | 6 +- help/en_US/scilab_en_US_help/sym_isInteger.html | 6 +- .../scilab_en_US_help/sym_isIterLimitReached.html | 6 +- help/en_US/scilab_en_US_help/sym_isOptimal.html | 6 +- .../scilab_en_US_help/sym_isTargetGapAchieved.html | 6 +- .../scilab_en_US_help/sym_isTimeLimitReached.html | 6 +- help/en_US/scilab_en_US_help/sym_loadMPS.html | 6 +- help/en_US/scilab_en_US_help/sym_loadProblem.html | 6 +- .../scilab_en_US_help/sym_loadProblemBasic.html | 6 +- help/en_US/scilab_en_US_help/sym_open.html | 6 +- help/en_US/scilab_en_US_help/sym_resetParams.html | 6 +- .../scilab_en_US_help/sym_setConstrLower.html | 6 +- .../en_US/scilab_en_US_help/sym_setConstrType.html | 6 +- .../scilab_en_US_help/sym_setConstrUpper.html | 6 +- .../en_US/scilab_en_US_help/sym_setContinuous.html | 6 +- help/en_US/scilab_en_US_help/sym_setDblParam.html | 6 +- help/en_US/scilab_en_US_help/sym_setIntParam.html | 6 +- help/en_US/scilab_en_US_help/sym_setInteger.html | 6 +- help/en_US/scilab_en_US_help/sym_setObjCoeff.html | 6 +- help/en_US/scilab_en_US_help/sym_setObjSense.html | 6 +- .../scilab_en_US_help/sym_setPrimalBound.html | 6 +- help/en_US/scilab_en_US_help/sym_setStrParam.html | 6 +- help/en_US/scilab_en_US_help/sym_setVarLower.html | 6 +- help/en_US/scilab_en_US_help/sym_setVarSoln.html | 6 +- help/en_US/scilab_en_US_help/sym_setVarUpper.html | 6 +- help/en_US/scilab_en_US_help/sym_solve.html | 6 +- help/en_US/scilab_en_US_help/symphony.html | 116 +++-- help/en_US/scilab_en_US_help/symphonymat.html | 286 +++++++----- help/en_US/symphony.xml | 182 ++++++-- help/en_US/symphonymat.xml | 411 ++++++++++++----- 245 files changed, 11656 insertions(+), 2223 deletions(-) create mode 100644 help/en_US/cbcintlinprog.xml create mode 100644 help/en_US/intfminbnd.xml create mode 100644 help/en_US/intfmincon.xml create mode 100644 help/en_US/intfminimax.xml create mode 100644 help/en_US/intfminunc.xml create mode 100644 help/en_US/intqpipopt.xml create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png create mode 100644 help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png create mode 100644 help/en_US/scilab_en_US_help/cbcintlinprog.html create mode 100644 help/en_US/scilab_en_US_help/intfminbnd.html create mode 100644 help/en_US/scilab_en_US_help/intfmincon.html create mode 100644 help/en_US/scilab_en_US_help/intfminimax.html create mode 100644 help/en_US/scilab_en_US_help/intfminunc.html create mode 100644 help/en_US/scilab_en_US_help/intqpipopt.html create mode 100644 help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html create mode 100644 help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html create mode 100644 help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html create mode 100644 help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html create mode 100644 help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html create mode 100644 help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html create mode 100644 help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html create mode 100644 help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html create mode 100644 help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html create mode 100644 help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html diff --git a/help/en_US/cbcintlinprog.xml b/help/en_US/cbcintlinprog.xml new file mode 100644 index 0000000..e95f92d --- /dev/null +++ b/help/en_US/cbcintlinprog.xml @@ -0,0 +1,369 @@ + + + + + + + + cbcintlinprog + Solves a mixed integer linear programming constrained optimization problem in intlinprog format. + + + + + Calling Sequence + + xopt = cbcintlinprog(c,intcon,A,b) + xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq) + xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub) + xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub,options) + xopt = cbcintlinprog('path_to_mps_file') + xopt = cbcintlinprog('path_to_mps_file',options) + [xopt,fopt,status,output] = cbcintlinprog( ... ) + + + + + + Input Parameters + + c : + a vector of double, contains coefficients of the variables in the objective + intcon : + Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable. + A : + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. + b : + A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1). + Aeq : + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. + beq : + A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1). + lb : + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + ub : + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + + xopt : + A vector of doubles, containing the computed solution of the optimization problem. + fopt : + A double, containing the the function value at x. + status : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + output : + A structure, containing the information about the optimization. See below for details. + + + + + Description + +Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by : + + + +\begin{eqnarray} +&\mbox{min}_{x} +& C^T⋅x \\ +& \text{Subjected to:} & A⋅x \leq b \\ +& & Aeq⋅x = beq \\ +& & lb \leq x \leq ub \\ +& & x_i \in \!\, \mathbb{Z}, i \in \!\, intcon\\ +\end{eqnarray} + + + +CBC, an optimization library written in C++, is used for solving the linear programming problems. + + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); + +IntegerTolerance : A Scalar, a number with that value of an integer is considered integer. +MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search. +MaxTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take. +AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped. + + The default values for the various items are given as: + + + options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap') + + +The exitflag allows the user to know the status of the optimization which is returned by OSI-CBC. The values it can take and what they indicate is described below: + + 0 : Optimal Solution Found + 1 : Converged to a point of primal infeasibility. + 2 : Solution Limit is reached + 3 : Node Limit is reached. Output may not be optimal. + 4 : Numerical Difficulties. + 5 : Maximum amount of CPU Time exceeded. + 6 : Continuous Solution Unbounded. + 7 : Converged to a point of dual infeasibility. + + + +For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Cbc + + + + + + + +A few examples displaying the various functionalities of cbcintlinprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + + Example + + Here we solve a simple objective function, subjected to three linear inequality constraints. + + +Find x in R^8 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&\leq 100\\ +\hspace{70pt} &1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&\leq 205\\ +\hspace{70pt} &1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&\leq 409\\ +\end{eqnarray}\\ +\text{With integer constraints as: } +\begin{eqnarray} +\begin{array}{cccccc} +[1 & 2 & 3 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + Example + +Here we build up on the previous example by adding upper and lower bounds to the variables. +We add the following bounds to the problem specified above: + + +\begin{eqnarray} +0 &\leq x_{1} &\leq 1\\ +0 &\leq x_{2} &\leq 1\\ +0 &\leq x_{3} &\leq 1\\ +0 &\leq x_{4} &\leq 1\\ +0 &\leq x_{5} &\leq \infty\\ +0 &\leq x_{6} &\leq \infty\\ +0 &\leq x_{7} &\leq \infty\\ +0 &\leq x_{8} &\leq \infty +\end{eqnarray} + + + + + + + Example + +In this example, we proceed to add the linear equality constraints to the objective function. + + + + +\begin{eqnarray} +&5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&= 25\\ +&0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&= 1.25\\ +&0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&= 1.25\\ +\end{eqnarray} + + + + + + + Example + +Primal Infeasible Problems: Find x in R^8 such that it minimizes: + + +Find x in R^8 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&\leq 26.333\\ +\hspace{70pt} &1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&\leq 3.916\\ +\hspace{70pt} &1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&\leq 5.249\\ +\end{eqnarray}\\ +\text{With integer constraints as: } +\begin{eqnarray} +\begin{array}{cccc} +[1 & 2 & 3 & 4] +\end{array} +\end{eqnarray} + + + + + + + Example + +Unbounded Problems. Find x in R^8 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&= 25\\ +\hspace{70pt} &0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&= 1.25\\ +\hspace{70pt} &0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&= 1.25\\ +\end{eqnarray}\\ +\text{With integer constraints as: } +\begin{eqnarray} +\begin{array}{cccccc} +[1 & 2 & 3 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + Authors + + Akshay Miterani and Pranav Deshpande + + + diff --git a/help/en_US/fgoalattain.xml b/help/en_US/fgoalattain.xml index 3e69265..602e32f 100644 --- a/help/en_US/fgoalattain.xml +++ b/help/en_US/fgoalattain.xml @@ -40,152 +40,129 @@ - Parameters + Input Parameters fun: - a function that accepts a vector x and returns a vector F + A function that accepts a vector x as input and returns the value of objective function at x. x0 : - a vector of double, contains initial guess of variables. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + goal : + A vector of doubles, containing the goals, which are the values the objective functions are supposed to achieve. + weights: + A vector of doubles, containing the weights assigned to each objective function. A : - a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). Aeq : - a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1) lb : - a vector of double, contains lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of double, contains upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. nonlcon: - a function, the nonlinear constraints + A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors. options : - a list, containing the option for user to specify. See below for details. + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. - fopt : - a double, the value of the function at x. + A vector of doubles, containing the computed solution of the optimization problem. + fval : + A vector of doubles, containing the values of the objective functions at the end of the optimization problem. attainfactor: - The amount of over- or underachievement of the goals,γ at the solution. + The amount of over or underachievement of the goals (\gamma) at the solution. exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details. Description -fgoalattain solves the goal attainment problem, which is one formulation for minimizing a multiobjective optimization problem. -Finds the minimum of a problem specified by: -Minimise Y such that +fgoalattain solves the goal attainment problem, which is a formulation for minimizing a multiobjective optimization problem. Find the minimum of a problem specified by: + + +Minimise \gamma such that: \begin{eqnarray} -\mbox{min}_{x,\gamma} & f(x)-weight \ast \gamma \leq goal \\ -\mbox{subject to} & c(x) \leq 0 \\ -& c_{eq}(x) = 0 \\ -& Ax \leq b \\ -& A_{eq} x = b_{eq} \\ -& lb \leq x \leq ub +&\mbox{min}_{x,\gamma} x\\ +\end{eqnarray} +\\&\text{Subjected to:}\\ +\begin{eqnarray} +& & F(x)-weight \boldsymbol{\cdot} \gamma \leq goal \\ +& & A\boldsymbol{\cdot} x \leq b \\ +& &A_{eq}\boldsymbol{\cdot} {x} = b_{eq}\\ +& &c(x) \leq 0\\ +& &c_{eq}(x) \ = 0\\ +& &lb \leq x \leq ub \\ \end{eqnarray} -The solver makes use of fmincon to find the minimum. - - -The fgoalattain finds out the maximum value of Y for the objectives evaluated at the starting point and -adds that as another variable to the vector x -This is passed to the fmincon function to get the optimised value of Y -Hence, the algorithm used mainly is "ipopt" to obtain the optimum solution -The relations between f(x), Y, weights and goals are added as additional non-linear inequality constraints - - -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. - -Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -GradObj : a function, representing the gradient function of the Objective in Vector Form. -GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 & m3 are number of non-linear inequality and equality constraints respectively. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); - - - -By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of gattainObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates gattainObjfun gradient using numderivative toolbox. - - -If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm. - - -Furthermore, we must enable the "GradObj" option with the statement : - -minimaxOptions = list("GradObj",fGrad); - -This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function. -The constraint function must have header : - -[c, ceq] = confun(x) - -where x is a n x 1 matrix of doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints). -On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints. +The solver makes use of fmincon, which uses the Ipopt solver, an optimization library written in C++, to solve the problem. - -By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of confun. In case the GradObj option is on and GradCons option is off, fminimax approximates confun gradient using numderivative toolbox. +Options + +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: -If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm. +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -Furthermore, we must enable the "GradCon" option with the statement : - -minimaxOptions = list("GradCon",confunGrad); - -This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. +The options should be defined as type "list" and consist of the following fields: + +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. +GradObj : A function, representing the gradient function of the Objective in Vector Form. +GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively. + +The default values for the various items are given as: -The constraint derivative function must have header : - -[dc,dceq] = confungrad(x) - -where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles. +options = list("MaxIter", [3000], "CpuTime", [600]); - -The exitflag allows to know the status of the optimization which is given back by Ipopt. + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.Iterations: The number of iterations performed during the search -output.Cpu_Time: The total cpu-time spend during the search -output.Objective_Evaluation: The number of Objective Evaluations performed during the search -output.Dual_Infeasibility: The Dual Infeasiblity of the final soution +output.Iterations: The number of iterations performed. +output.Cpu_Time : The total cpu-time taken. +output.Objective_Evaluation: The number of Objective Evaluations performed. +output.Dual_Infeasibility : The Dual Infeasiblity of the final soution. +output.Message: The output message for the problem. - -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. + +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -200,9 +177,41 @@ It has type "struct" and contains the following fields. + +A few examples displaying the various functionalities of fgoalattain have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + - Examples + Example + Here we solve a simple objective function, subjected to no constraints. + + +\begin{eqnarray} +\qquad \qquad \qquad \mbox{min}_{x,\gamma} \gamma +\end{eqnarray} +\\ +\text{Such that:}\\ +\begin{eqnarray} +\qquad & F(x)-weight \boldsymbol{\cdot} \gamma \leq goal \\ +\end{eqnarray} +\\ +\text{Where F(x) = }\:\begin{cases} +\begin{eqnarray} +&f_{1}(x) &= 2 \boldsymbol{\cdot} x_{1}^{2} + x_{2}^{2} - 48x_{1} - 40x_{2} + 304\\ +&f_{2}(x) &= -x_{1}^{2} - 3x_{2}^{2}\\ +&f_{3}(x) &= x_{1} + 3x_{2} - 18\\ +&f_{4}(x) &= -x_{1} - x_{2}\\ +&f_{5}(x) &= x_{1} + x_{2} - 8 +\end{eqnarray} +\end{cases} + + + + + + + + Example + We proceed to add simple linear inequality constraints. + + +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{70pt} &x_{1} + x_{2}/4&\leq 1\\ +\hspace{70pt} &-x_{1} + x_{2}&\geq -1\\ +\end{eqnarray} + + + + + + + + + + Example +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + +\begin{eqnarray} +&x_{1} - x_{2}&= 1 +\\&2x_{1} + x_{2}&= 2 +\end{eqnarray} + + + + + + + + + + Example +In this example, we proceed to add the upper and lower bounds to the objective function. + + +\begin{eqnarray} +-1 &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq 1 +\end{eqnarray} + + + + + + + + + + + Example +Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. + + +\begin{eqnarray} +x_{1}^2-5&\leq 0\\ +x_{1}^2+x_{2}^{2}-8&\leq 0\\ +\end{eqnarray} + + + + + + + + + + + Example + +We can further enhance the functionality of fgoalattain by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options. + + + +\begin{eqnarray} +1.5 + x_{1} \boldsymbol{\cdot} x_{2} - x_{1} - x_{2} &\leq 0\\ +-x_{1}\boldsymbol{\cdot} x_{2} - 10 &\leq 0 +\end{eqnarray} + + + + + + + + + + Example +Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints: + + +\begin{eqnarray} +&x_{1}/3 - 5x_{2}&= 11 +\\&2x_{1} + x_{2}&= 8 +\\ \end{eqnarray} + + + + + + + Authors diff --git a/help/en_US/fminbnd.xml b/help/en_US/fminbnd.xml index 99d21ea..b71d5cf 100644 --- a/help/en_US/fminbnd.xml +++ b/help/en_US/fminbnd.xml @@ -35,26 +35,31 @@ - Parameters + Input Parameters f : - a function, representing the objective function of the problem - x1 : - a vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables, where n is number of Variables - x2 : - a vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where 'n' is the number of Variables. If x2 is empty it means upper bound is +infinity + A function, representing the objective function of the problem. + x_{1} : + A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is -\infty. + x_{2} : + A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is \infty. options : - a list, containing the option for user to specify. See below for details. + A list, containing the options for user to specify. See below for details. + + + + Outputs + xopt : - a vector of doubles, containing the the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a scalar of double, containing the the function value at x. + A double, containing the the function value at x. exitflag : - a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - a structure, containing the information about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - a structure, containing the Lagrange multipliers of lower bound and upper bound at the optimized point. See below for details. + A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details. @@ -69,47 +74,58 @@ Find the minimum of f(x) such that \begin{eqnarray} &\mbox{min}_{x} & f(x)\\ -& \text{subject to} & x1 \ < x \ < x2 \\ +& \text{Subjected to:}\\ +& x_{1} \leq x \leq x_{2} \\ \end{eqnarray} -The routine calls Ipopt for solving the Bounded Optimization problem, Ipopt is a library written in C++. +fminbnd calls Ipopt which is an optimization library written in C++, to solve the bound optimization problem. + + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("MaxIter", [---], "CpuTime", [---], "TolX", [---]); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. +The options should be defined as type "list" and consist of the following fields: -Syntax : options= list("MaxIter", [---], "CpuTime", [---], TolX, [----]); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -TolX : a Scalar, containing the Tolerance value that the solver should take. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600], TolX, [1e-4]); +MaxIter : A scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take. +TolX : A scalar, containing the tolerance value that the solver should take. +The default values for the various items are given as: -The exitflag allows to know the status of the optimization which is given back by Ipopt. +options = list("MaxIter", [3000], "CpuTime", [600]); + + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +It is of type "struct" and contains the following fields. -output.Iterations: The number of iterations performed during the search -output.Cpu_Time: The total cpu-time spend during the search -output.Objective_Evaluation: The number of Objective Evaluations performed during the search -output.Dual_Infeasibility: The Dual Infeasiblity of the final soution -output.Message: The output message for the problem +output.Iterations: The number of iterations performed. +output.Cpu_Time : The total cpu-time taken. +output.Objective_Evaluation: The number of Objective Evaluations performed. +output.Dual_Infeasibility : The Dual Infeasiblity of the final soution. +output.Message: The output message for the problem. @@ -125,58 +141,108 @@ It has type "struct" and contains the following fields. + +A few examples displaying the various functionalities of fminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + - Examples + Example + + Here we solve a simple non-linear objective function, bounded in the interval [0,1000]. + + +Find x in R such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = \dfrac{1}{x^{2}} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &0 &\leq x &\leq 1000\\ +\end{eqnarray} + + + + + - Examples + Example + +Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options. + + +Find x in R^6 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = sin(x_{1}) + sin(x_{2}) + sin(x_{3}) + sin(x_{4}) + sin(x_{5}) + sin(x_{6}) +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &-2 &\leq x{1}, x{2}, x{3}, x{4}, x{5}, x{6} &\leq 2\\ +\end{eqnarray} + + + + - Examples + Example + +Unbounded Problems: Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +f(x) = -((x_{1}-1)^{2}+(x_{2}-1)^{2}) +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +-\infty &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq \infty +\end{eqnarray} + + + + fmincon - Solves a multi-variable constrainted optimization problem + Solves a multi-variable constrainted optimization problem. @@ -40,108 +40,122 @@ - Parameters + Input Parameters f : - a function, representing the objective function of the problem + A function, representing the objective function of the problem. x0 : - a vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. A : - a matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1) + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). Aeq : - a matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1) + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). lb : - a vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. nlc : - a function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints are defined first as a single row vector (c), followed by non-linear equality constraints as another single row vector (ceq). Refer Example for definition of Constraint function. + A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors. options : - a list, containing the option for user to specify. See below for details. + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of doubles, cointating the computed solution of the optimization problem + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a scalar of double, containing the the function value at x + A double, containing the value of the function at x. exitflag : - a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - a structure, containing the information about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - a structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details. + A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details. gradient : - a vector of doubles, containing the Objective's gradient of the solution. + A vector of doubles, containing the objective's gradient of the solution. hessian : - a matrix of doubles, containing the Lagrangian's hessian of the solution. + A matrix of doubles, containing the Lagrangian's hessian of the solution. Description -Search the minimum of a constrained optimization problem specified by : +Search the minimum of a constrained optimization problem specified by: + + Find the minimum of f(x) such that \begin{eqnarray} -&\mbox{min}_{x} -& f(x) \\ -& \text{subject to} & A*x \leq b \\ -& & Aeq*x \ = beq\\ -& & c(x) \leq 0\\ -& & ceq(x) \ = 0\\ -& & lb \leq x \leq ub \\ +&\mbox{min}_{x}\ f(x) \\ +& \text{Subjected to}\\ +& & A\boldsymbol{\cdot} x \leq b \\ +& &A_{eq}\boldsymbol{\cdot} {x} = b_{eq}\\ +& &c(x) \leq 0\\ +& &c_{eq}(x) \ = 0\\ +& &lb \leq x \leq ub \\ \end{eqnarray} -The routine calls Ipopt for solving the Constrained Optimization problem, Ipopt is a library written in C++. +fmincon calls Ipopt, an optimization library written in C++, to solve the Constrained Optimization problem. + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. +The options should be defined as type "list" and consist of the following fields: -Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -GradObj : a function, representing the gradient function of the Objective in Vector Form. -Hessian : a function, representing the hessian function of the Lagrange in Symmetric Matrix Form with Input parameters x, Objective factor and Lambda. Refer Example for definition of Lagrangian Hessian function. -GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 & m3 are number of non-linear inequality and equality constraints respectively. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. +GradObj : A function, representing the gradient function of the Objective in vector form. +Hessian : A function, representing the hessian function of the Lagrange in the form of a Symmetric Matrix with Input parameters as x, Objective factor and Lambda. Refer to Example 5 for definition of Lagrangian Hessian function. +GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively. +The default values for the various items are given as: + + +options = list("MaxIter", [3000], "CpuTime", [600]); -The exitflag allows to know the status of the optimization which is given back by Ipopt. +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.Iterations: The number of iterations performed during the search -output.Cpu_Time: The total cpu-time spend during the search -output.Objective_Evaluation: The number of Objective Evaluations performed during the search -output.Dual_Infeasibility: The Dual Infeasiblity of the final soution -output.Message: The output message for the problem +output.Iterations: The number of iterations performed. +output.Cpu_Time : The total cpu-time taken. +output.Objective_Evaluation: The number of Objective Evaluations performed. +output.Dual_Infeasibility : The Dual Infeasiblity of the final soution. +output.Message: The output message for the problem. -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -153,60 +167,192 @@ It has type "struct" and contains the following fields. +A few examples displaying the various functionalities of fmincon have been provided below. You will find a series problems and the appropriate code snippets to solve them. + + + + + + Example + + Here we solve a simple non-linear objective function, subjected to three linear inequality constraints. + + +Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = x_{1}^{2} - x_{1} \boldsymbol{\cdot} x_{2}/3 + x_{2}^{2} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{70pt} &x_{1} + x_{2}/4&\leq 1\\ +\hspace{70pt} &-x_{1} + x_{2}&\geq -1\\ +\end{eqnarray} + + + + + + + + + + Example + +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + + +\begin{eqnarray} +&x_{1} - x_{2}&= 1 +\\&2x_{1} + x_{2}&= 2 +\\ \end{eqnarray} + + + + - Examples + Example + +In this example, we proceed to add the upper and lower bounds to the objective function. + + + +\begin{eqnarray} +-1 &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq 1 +\end{eqnarray} + + + + + + + + Example + +Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. + + + +\begin{eqnarray} +x_{1}^2-1&\leq 0\\ +x_{1}^2+x_{2}^2-1&\leq 0\\ +\end{eqnarray} + + + + + - Examples +Example + +Additional Functionality: + + +We can further enhance the functionality of fmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options. + + + + + + \begin{eqnarray} + \mbox{min}_{x}\ f(x)= x_{1}*x_{2} + x_{2}*x_{3} + \end{eqnarray} + \\ \text{Subjected to:}\\ + \begin{eqnarray} + \hspace{70pt} &c_{1}: x_{1}^2 - x_{2}^2 + x_{3}^2&\leq 2 \\ + \hspace{70pt} &c_{2}: x_{1}^2 + x_{2}^2 + x_{3}^2&\leq 10 + \end{eqnarray} + + + + + - Examples +Example + + +Infeasible Problems: Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +f(x) = x_{1}^{2} - x_{1} \boldsymbol{\cdot} x_{2}/3 + x_{2}^{2} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{70pt} &x_{1} + x_{2}/4&\leq 1\\ +\hspace{70pt} &-x_{1} + x_{2}&\geq -1\\ +\hspace{70pt} &x_{1} + x_{2}&= 2 +\end{eqnarray} + + + + - + - Examples - Example + +Unbounded Problems: Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +f(x) = x_{1} \boldsymbol{\cdot} x_{2}/3 - x_{1}^{2} - x_{2}^{2} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\geq 2\\ +\hspace{70pt} &x_{1} + x_{2}&\geq -1 +\\\end{eqnarray} + + + + + +x0=[0 , 0]; +A=[-1,-1 ; 1,1]; +b=[-2;1]; +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b); + +]]> + + Authors diff --git a/help/en_US/fminimax.xml b/help/en_US/fminimax.xml index e733a3d..84ed5be 100644 --- a/help/en_US/fminimax.xml +++ b/help/en_US/fminimax.xml @@ -40,49 +40,57 @@ - Parameters + Input Parameters fun: - The function to be minimized. fun is a function that accepts a vector x and returns a vector F, the objective functions evaluated at x. + The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x. x0 : - a vector of double, contains initial guess of variables. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables. A : - a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). Aeq : - a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). lb : - a vector of double, contains lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of double, contains upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. nonlinfun: - function that computes the nonlinear inequality constraints c⋅x ≤ 0 and nonlinear equality constraints c⋅x = 0. + A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. - fopt : - a double, the value of the function at x. + A vector of doubles, containing the computed solution of the optimization problem. + fval : + A vector of doubles, containing the values of the objective functions at the end of the optimization problem. maxfval: - a 1x1 matrix of doubles, the maximum value in vector fval + A double, representing the maximum value in the vector fval. exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details. Description -fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem. +fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate, a problem generally referred to as the minimax problem. -\min_{x} \max_{i} F_{i}(x)\: \textrm{such that} \:\begin{cases} +\min_{x} \max_{i} F_{i}(x)\\ + \textrm{Such that} \:\begin{cases} & c(x) \leq 0 \\ & ceq(x) = 0 \\ & A.x \leq b \\ @@ -92,7 +100,7 @@ fminimax minimizes the worst-case (largest) value of a set of multivariable func -Currently, fminimax calls fmincon which uses the ip-opt algorithm. +Currently, fminimax calls fmincon which uses the Ipopt solver. max-min problems can also be solved with fminimax, using the identity @@ -102,20 +110,29 @@ max-min problems can also be solved with fminimax, using the identity \max_{x} \min_{i} F_{i}(x) = -\min_{x} \max_{i} \left( -F_{i}(x) \right) + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---); + -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -GradObj : a function, representing the gradient function of the Objective in Vector Form. -GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 & m3 are number of non-linear inequality and equality constraints respectively. +MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take. +CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take. +GradObj : A function, representing the gradient function of the Objective in Vector Form. +GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively. Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +The default values for the various items are given as: -The objective function must have header : +options = list("MaxIter", [3000], "CpuTime", [600]); + + +The objective function must have a header : F = fun(x) @@ -123,24 +140,28 @@ where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m On input, the variable x contains the current point and, on output, the variable F must contain the objective function values. -By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates minmaxObjfun gradient using numderivative toolbox. +By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, fminimax approximates minmaxObjfun gradient using the numderivative toolbox. + +Syntax + +Some syntactic details about fminimax, including the syntax for the gradient, defining the non-linear constraints, and the constraint derivative function have been provided below: -If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm. +If the user can provide exact gradients, it should be done, since it improves the convergence speed of the optimization algorithm. -Furthermore, we must enable the "GradObj" option with the statement : +Furthermore, we can enable the "GradObj" option with the statement : minimaxOptions = list("GradObj",fGrad); This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function. -The constraint function must have header : +The constraint function must have header: [c, ceq] = confun(x) -where x is a n x 1 matrix of dominmaxUbles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints). +Where x is a n x 1 matrix of minimax doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints). On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints. @@ -164,32 +185,32 @@ The constraint derivative function must have header : where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles. -The exitflag allows to know the status of the optimization which is given back by Ipopt. +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.Iterations: The number of iterations performed during the search -output.Cpu_Time: The total cpu-time spend during the search -output.Objective_Evaluation: The number of Objective Evaluations performed during the search -output.Dual_Infeasibility: The Dual Infeasiblity of the final soution +output.Iterations: The number of iterations performed. +output.Cpu_Time : The total cpu-time taken. +output.Objective_Evaluation: The number of Objective Evaluations performed. +output.Dual_Infeasibility : The Dual Infeasiblity of the final soution. +output.Message: The output message for the problem. - -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. + +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -200,16 +221,70 @@ It has type "struct" and contains the following fields. lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints. + + + +A few examples displaying the various functionalities of fminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + Here we solve a simple objective function, subjected to no constraints. + + +\begin{eqnarray} +\mbox\min_{x} \max_{i}\ f_{i}(x)\\ +\end{eqnarray} +\\ +\begin{eqnarray} +&f_{1}(x) &= 2 \boldsymbol{\cdot} x_{1}^{2} + x_{2}^{2} - 48x_{1} - 40x_{2} + 304\\ +&f_{2}(x) &= -x_{1}^{2} - 3x_{2}^{2}\\ +&f_{3}(x) &= x_{1} + 3x_{2} - 18\\ +&f_{4}(x) &= -x_{1} - x_{2}\\ +&f_{5}(x) &= x_{1} + x_{2} - 8 +\end{eqnarray} + + - + + + - Examples + Example + We proceed to add simple linear inequality constraints. + + + +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{70pt} &x_{1} + x_{2}/4&\leq 1\\ +\hspace{70pt} &-x_{1} + x_{2}&\geq -1\\ +\end{eqnarray} + + + + + + + + + Example +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + +\begin{eqnarray} +&x_{1} - x_{2}&= 1 +\\&2x_{1} + x_{2}&= 2 +\end{eqnarray} + + + + + + + + + + Example +In this example, we proceed to add the upper and lower bounds to the objective function. + + +\begin{eqnarray} +-1 &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq 1 +\end{eqnarray} + + + + + + + - Examples + Example +Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. + + +\begin{eqnarray} +x_{1}^2-1&\leq 0\\ +x_{1}^2+x_{2}^{2}-1&\leq 0\\ +\end{eqnarray} + + + + + + + + + Example + +We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options. + + + +\begin{eqnarray} +1.5 + x_{1} \boldsymbol{\cdot} x_{2} - x_{1} - x_{2} &\leq 0\\ +-x_{1}\boldsymbol{\cdot} x_{2} - 10 &\leq 0 +\end{eqnarray} + + + + + + + + Example +Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints: + + +\begin{eqnarray} +&x_{1}/3 - 5x_{2}&= 11 +\\&2x_{1} + x_{2}&= 8 +\\ \end{eqnarray} + + + + + + + Authors diff --git a/help/en_US/fminunc.xml b/help/en_US/fminunc.xml index e5a46c3..30fc9eb 100644 --- a/help/en_US/fminunc.xml +++ b/help/en_US/fminunc.xml @@ -36,26 +36,31 @@ - Parameters + Input Parameters f : - a function, representing the objective function of the problem + A function, representing the objective function of the problem. x0 : - a vector of doubles, containing the starting of variables. - options: - a list, containing the option for user to specify. See below for details. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables. + options : + A list, containing the options for user to specify. See below for details. + + + + Outputs + xopt : - a vector of doubles, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a scalar of double, the function value at x. + A double, containing the the function value at x. exitflag : - a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details. - output : - a structure, containing the information about the optimization. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + output : + A structure, containing the information about the optimization. See below for details. gradient : - a vector of doubles, containing the the gradient of the solution. + A vector of doubles, containing the objective's gradient of the solution. hessian : - a matrix of doubles, containing the the hessian of the solution. + A matrix of doubles, containing the lagrangian's hessian of the solution. @@ -63,6 +68,8 @@ Description Search the minimum of an unconstrained optimization problem specified by : + + Find the minimum of f(x) such that @@ -74,101 +81,149 @@ Find the minimum of f(x) such that -The routine calls Ipopt for solving the Un-constrained Optimization problem, Ipopt is a library written in C++. +Fminunc calls Ipopt which is an optimization library written in C++, to solve the unconstrained optimization problem. + + + Options +The options allow the user to set various parameters of the optimization problem. The syntax for the options is given by: + + +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -Syntax : options= list("MaxIter", [---], "CpuTime", [---], "Gradient", ---, "Hessian", ---); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -Gradient : a function, representing the gradient function of the Objective in Vector Form. -Hessian : a function, representing the hessian function of the Objective in Symmetric Matrix Form. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +MaxIter : A Scalar, specifying the Maximum Number of Iterations that the solver should take. +CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take. +Gradient: A function, representing the gradient function of the objective in Vector Form. +Hessian : A function, representing the hessian function of the lagrange in the form of a Symmetric Matrix with input parameters as x, objective factor and lambda. Refer to Example 5 for definition of lagrangian hessian function. +The default values for the various items are given as: -The exitflag allows to know the status of the optimization which is given back by Ipopt. +options = list("MaxIter", [3000], "CpuTime", [600]); + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.Iterations: The number of iterations performed during the search -output.Cpu_Time: The total cpu-time spend during the search -output.Objective_Evaluation: The number of Objective Evaluations performed during the search -output.Dual_Infeasibility: The Dual Infeasiblity of the final soution -output.Message: The output message for the problem +output.Iterations: The number of iterations performed. +output.Cpu_Time : The total cpu-time taken. +output.Objective_Evaluation: The number of objective evaluations performed. +output.Dual_Infeasibility : The Dual Infeasiblity of the final soution. +output.Message: The output message for the problem. + +A few examples displaying the various functionalities of fminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + - Examples + Example + +We begin with the minimization of a simple non-linear function. + + +Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = x_{1}^{2} + x_{2}^{2} +\end{eqnarray} + + + + + - Examples + Example + +We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of fminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options. + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = 100\boldsymbol{\cdot} (x_{2} - x_{1}^{2})^{2} + (1-x_{1})^{2} +\end{eqnarray} + + + + + - Examples + Example + +Unbounded Problems: Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +f(x) = -x_{1}^{2} - x_{2}^{2} +\end{eqnarray} + + + + diff --git a/help/en_US/intfminbnd.xml b/help/en_US/intfminbnd.xml new file mode 100644 index 0000000..dbc8fa9 --- /dev/null +++ b/help/en_US/intfminbnd.xml @@ -0,0 +1,242 @@ + + + + + + + + intfminbnd + Solves a multi-variable optimization problem on a bounded interval + + + + + Calling Sequence + + xopt = intfminbnd(f,intcon,x1,x2) + xopt = intfminbnd(f,intcon,x1,x2,options) + [xopt,fopt] = intfminbnd(.....) + [xopt,fopt,exitflag]= intfminbnd(.....) + [xopt,fopt,exitflag,output]=intfminbnd(.....) + [xopt,fopt,exitflag,gradient,hessian]=intfminbnd(.....) + + + + + + Input Parameters + + f : + A function, representing the objective function of the problem. + x_{1} : + A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is -\infty. + x_{2} : + A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is \infty. + intcon : + A vector of integers, representing the variables that are constrained to be integers. + options : + A list, containing the options for user to specify. See below for details. + + + + Outputs + + xopt : + A vector of doubles, containing the computed solution of the optimization problem. + fopt : + A double, containing the the function value at x. + exitflag : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + gradient : + A vector of doubles, containing the objective's gradient of the solution. + hessian : + A matrix of doubles, containing the Lagrangian's hessian of the solution. + + + + + Description + +Search the minimum of a multi-variable function on bounded interval specified by : +Find the minimum of f(x) such that + + + +\begin{eqnarray} +&\mbox{min}_{x} +& f(x)\\ +& \text{Subjected to:}\\ & x_{1} \ < x \ < x_{2} \\ +\end{eqnarray} + + + +intfminbnd calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem. + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); + +IntegerTolerance : A Scalar, a number with that value of an integer is considered integer. +MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search. +CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take. +AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped. +MaxIter : A scalar, specifying the maximum number of iterations that the solver should take. +gradobj : A string, to turn on or off the user supplied objective gradient. +hessian : A scalar, to turn on or off the user supplied objective hessian. + + The default values for the various items are given as: + + + options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off") + + + +The exitflag allows the user to know the status of the optimization which is returned by Bonmin. The values it can take and what they indicate is described below: + + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. + + + +For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin + + + + + +A few examples displaying the various functionalities of intfminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + +We start with a simple objective function. Find x in R^6 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = sin(x_{1}) + sin(x_{2}) + sin(x_{3}) + sin(x_{4}) + sin(x_{5}) + sin(x_{6}) +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &-2 &\leq x{1}, x{2}, x{3}, x{4}, x{5}, x{6} &\leq 2\\ +\end{eqnarray}\\ +\text{With integer constraints as: }\\ +\begin{eqnarray} +\begin{array}{ccc} +[2 & 3 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + + + Example + Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options. + + + + + + Example + + Unbounded Problems: Find x in R^2 such that it minimizes: + + + + \begin{eqnarray} +f(x) = -((x_{1}-1)^{2}+(x_{2}-1)^{2}) +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +-\infty &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq \infty +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{cccccc} +[1 & 2] \\ +\end{array} +\end{eqnarray} + + + + + + + + + Authors + + Harpreet Singh + + + diff --git a/help/en_US/intfmincon.xml b/help/en_US/intfmincon.xml new file mode 100644 index 0000000..782978e --- /dev/null +++ b/help/en_US/intfmincon.xml @@ -0,0 +1,509 @@ + + + + + + + + intfmincon + Solves a constrainted multi-variable mixed integer non linear programming problem + + + + + Calling Sequence + + xopt = intfmincon(f,x0,intcon,A,b) + xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq) + xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub) + xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub,nlc) + xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options) + [xopt,fopt] = intfmincon(.....) + [xopt,fopt,exitflag]= intfmincon(.....) + [xopt,fopt,exitflag,gradient]=intfmincon(.....) + [xopt,fopt,exitflag,gradient,hessian]=intfmincon(.....) + + + + + + Input Parameters + + f : + A function, representing the objective function of the problem. + x0 : + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + intcon : + A vector of integers, representing the variables that are constrained to be integers. + A : + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. + b : + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). + Aeq : + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. + beq : + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). + lb : + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + ub : + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + nlc : + A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + + xopt : + A vector of doubles, containing the the computed solution of the optimization problem. + fopt : + A double, containing the value of the function at xopt. + exitflag : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + gradient : + a vector of doubles, containing the Objective's gradient of the solution. + hessian : + a matrix of doubles, containing the Objective's hessian of the solution. + + + + + Description + +Search the minimum of a mixed integer constrained optimization problem specified by : +Find the minimum of f(x) such that + + + +\begin{eqnarray} +&\mbox{min}_{x} +& f(x) \\ +& \text{Subjected to:} & A \boldsymbol{\cdot} x \leq b \\ +& & Aeq \boldsymbol{\cdot} x \ = beq\\ +& & c(x) \leq 0\\ +& & ceq(x) \ = 0\\ +& & lb \leq x \leq ub \\ +& & x_{i} \in \!\, \mathbb{Z}, i \in \!\, I +\end{eqnarray} + + + +intfmincon calls Bonmin, an optimization library written in C++, to solve the Constrained Optimization problem. + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); + +IntegerTolerance : A Scalar, a number with that value of an integer is considered integer. +MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search. +CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take. +AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped. +MaxIter : A scalar, specifying the maximum number of iterations that the solver should take. +gradobj : A string, to turn on or off the user supplied objective gradient. +hessian : A scalar, to turn on or off the user supplied objective hessian. + + The default values for the various items are given as: + + + options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off") + + + + +The exitflag allows to know the status of the optimization which is given back by Ipopt. + +0 : Optimal Solution Found +1 : InFeasible Solution. +2 : Objective Function is Continuous Unbounded. +3 : Limit Exceeded. +4 : User Interrupt. +5 : MINLP Error. + + + +For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin + + + + + +A few examples displaying the various functionalities of intfmincon have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + + Here we solve a simple objective function, subjected to three linear inequality constraints. + + +Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = x_{1}^{2} - x_{1} \boldsymbol{\cdot} x_{2}/3 + x_{2}^{2} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{70pt} &x_{1} + \dfrac{x_{2}}{4}&\leq 1\\ +\hspace{70pt} &-x_{1} + x_{2}&\geq -2\\ +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[1] \\ +\end{array} +\end{eqnarray} + + + + + + + + + + Example + +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + + +\begin{eqnarray} +&x_{1} - x_{2}&= 1 +\\&2x_{1} + x_{2}&= 2 +\\\end{eqnarray} + + + + + + + + + Example + +In this example, we proceed to add the upper and lower bounds to the objective function. + + +Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +-1 &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq 1 +\end{eqnarray} + + + + + + + + + + Example + + Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = x_{1} \boldsymbol{\cdot} x_{2} + x_{2} \boldsymbol{\cdot} x_{3} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1}^{2} - x_{2}^{2} + x_{3}^{2}&\leq 2\\ +\hspace{70pt} &x_{1}^{2} + x_{2}^{2} + x_{3}^{2}&\leq 10\\ +\end{eqnarray}\\ +\text{With integer constraints as: }\\ +\begin{eqnarray} +\begin{array}{c} +[2] \\ +\end{array} +\end{eqnarray} + + + + + + + + + Example + +We can further enhance the functionality of intfmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options. + + + + + + + + Example + +Infeasible Problems: Find x in R^3 such that it minimizes: + + + +\begin{eqnarray} +f(x) = x_{1} \boldsymbol{\cdot} x_{2} + x_{2} \boldsymbol{\cdot} x_{3} +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1}^{2} &\leq 1\\ +\hspace{70pt} &x_{1}^{2} + x_{2}^{2}&\leq 1\\ +\hspace{70pt} &x_{3}^{2}&\leq 1\\ +\hspace{70pt} &x_{1}^{3}&\leq 0.5\\ +\hspace{70pt} &x_{2}^{2} + x_{3}^{2}&\leq 0.75\\ +\end{eqnarray}\\ +\text{With variable bounds as: }\\ +\begin{eqnarray} +\hspace{70pt} 0 &\leq x_{1} &\leq 0.6\\ +\hspace{70pt} 0.2 &\leq x_{2} &\leq \infty\\ +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[2] \\ +\end{array} +\end{eqnarray} + + + + + + + + + Example + +Unbounded Problems: Find x in R^3 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = x_{1}^{2} + x_{2}^{2} + x_{3}^{2}\\ +\end{eqnarray}\\ +\text{With variable bounds as: }\\ +\begin{eqnarray} +-\infty &\leq x_{1} &\leq 0\\ +-\infty &\leq x_{2} &\leq 0\\ +-\infty &\leq x_{3} &\leq 0\\ +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[3] \\ +\end{array} +\end{eqnarray} + + + + + + + + + + Authors + + Harpreet Singh + + + diff --git a/help/en_US/intfminimax.xml b/help/en_US/intfminimax.xml new file mode 100644 index 0000000..1630ea3 --- /dev/null +++ b/help/en_US/intfminimax.xml @@ -0,0 +1,511 @@ + + + + + + + + intfminimax + Solves minimax constraint problem + + + + + Calling Sequence + + xopt = intfminimax(fun,x0,intcon) + xopt = intfminimax(fun,x0,intcon,A,b) + xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq) + xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub) + xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub,nonlinfun) + xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub,nonlinfun,options) + [xopt, fval] = intfminimax(.....) + [xopt, fval, maxfval]= intfminimax(.....) + [xopt, fval, maxfval, exitflag]= intfminimax(.....) + + + + + + Input Parameters + + fun: + The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x. + x0 : + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables. + A : + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. + b : + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). + Aeq : + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. + beq : + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). + intcon : + A vector of integers, representing the variables that are constrained to be integers. + lb : + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + ub : + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + nonlinfun: + A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + + xopt : + A vector of doubles, containing the computed solution of the optimization problem. + fopt : + A vector of doubles, containing the values of the objective functions at the end of the optimization problem. + maxfval: + A double, representing the maximum value in the vector fval. + exitflag : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + output : + A structure, containing the information about the optimization. See below for details. + lambda : + A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details. + + + + + Description + +intfminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem. + + + +\min_{x} \max_{i} F_{i}(x)\: \textrm{such that} \:\begin{cases} +& c(x) \leq 0 \\ +& ceq(x) = 0 \\ +& A.x \leq b \\ +& Aeq.x = beq \\ +& lb \leq x \leq ub +& x_i \in \!\, \mathbb{Z}, i \in \!\, I +\end{cases} + + + +max-min problems can also be solved with intfminimax, using the identity + + + +\max_{x} \min_{i} F_{i}(x) = -\min_{x} \max_{i} \left( -F_{i}(x) \right) + + + +Currently, intfminimax calls intfmincon, which uses the bonmin algorithm, an optimization library in C++. + + +Options + +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); + +IntegerTolerance : A Scalar, a number with that value of an integer is considered integer. +MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search. +CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take. +AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped. +MaxIter : A scalar, specifying the maximum number of iterations that the solver should take. +gradobj : A string, to turn on or off the user supplied objective gradient. +hessian : A scalar, to turn on or off the user supplied objective hessian. + + The default values for the various items are given as: + + + options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off") + + + +The objective function must have header : + +F = fun(x) + +where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m is the total number of objective functions inside F. +On input, the variable x contains the current point and, on output, the variable F must contain the objective function values. + + +By default, the gradient options for intfminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, intfminimax approximates minmaxObjfun gradient using the numderivative toolbox. + + +If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm. + + + + +The exitflag allows to know the status of the optimization which is given back by Bonmin. + +0 : Optimal Solution Found +1 : InFeasible Solution. +2 : Objective Function is Continuous Unbounded. +3 : Limit Exceeded. +4 : User Interrupt. +5 : MINLP Error. + + + +For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin + + + + + +A few examples displaying the various functionalities of intfminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + Here we solve a simple objective function, subjected to no constraints. + + +\begin{eqnarray} +\mbox\min_{x} \max_{i}\ f_{i}(x)\\ +\end{eqnarray} +\\ +\begin{eqnarray} +&f_{1}(x) &= 2 \boldsymbol{\cdot} x_{1}^{2} + x_{2}^{2} - 48x_{1} - 40x_{2} + 304\\ +&f_{2}(x) &= -x_{1}^{2} - 3x_{2}^{2}\\ +&f_{3}(x) &= x_{1} + 3x_{2} - 18\\ +&f_{4}(x) &= -x_{1} - x_{2}\\ +&f_{5}(x) &= x_{1} + x_{2} - 8 +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{cccccc} +[1] \\ +\end{array} +\end{eqnarray} + + + + + + + + + + Example + We proceed to add simple linear inequality constraints. + + + +\begin{eqnarray} +\hspace{70pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{70pt} &x_{1} + x_{2}/4&\leq 1\\ +\hspace{70pt} &-x_{1} + x_{2}&\geq -1\\ +\end{eqnarray} + + + + + + + + + + Example +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + +\begin{eqnarray} +&x_{1} - x_{2}&= 1 +\\&2x_{1} + x_{2}&= 2 +\end{eqnarray} + + + + + + + + + + Example +In this example, we proceed to add the upper and lower bounds to the objective function. + + +\begin{eqnarray} +-1 &\leq x_{1} &\leq \infty\\ +-\infty &\leq x_{2} &\leq 1 +\end{eqnarray} + + + + + + + + + + + Example +Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. + + +\begin{eqnarray} +x_{1}^2-1&\leq 0\\ +x_{1}^2+x_{2}^{2}-1&\leq 0\\ +\end{eqnarray} + + + + + + + + + + Example + +We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options. + + + +\begin{eqnarray} +1.5 + x_{1} \boldsymbol{\cdot} x_{2} - x_{1} - x_{2} &\leq 0\\ +-x_{1}\boldsymbol{\cdot} x_{2} - 10 &\leq 0 +\end{eqnarray} + + + + + + + + + + Example +Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints: + + +\begin{eqnarray} +&x_{1}/3 - 5x_{2}&= 11 +\\&2x_{1} + x_{2}&= 8 +\\ \end{eqnarray} + + + + + + + + + + Authors + + Harpreet Singh + + + diff --git a/help/en_US/intfminunc.xml b/help/en_US/intfminunc.xml new file mode 100644 index 0000000..df2cdda --- /dev/null +++ b/help/en_US/intfminunc.xml @@ -0,0 +1,242 @@ + + + + + + + + intfminunc + Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem + + + + + Calling Sequence + + xopt = intfminunc(f,x0) + xopt = intfminunc(f,x0,intcon) + xopt = intfminunc(f,x0,intcon,options) + [xopt,fopt] = intfminunc(.....) + [xopt,fopt,exitflag]= intfminunc(.....) + [xopt,fopt,exitflag,gradient,hessian]= intfminunc(.....) + + + + + + Input Parameters + + f : + A function, representing the objective function of the problem. + x0 : + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables. + intcon : + A vector of integers, representing the variables that are constrained to be integers. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + + xopt : + A vector of doubles, containing the computed solution of the optimization problem. + fopt : + A double, containing the the function value at x. + exitflag : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + gradient : + A vector of doubles, containing the objective's gradient of the solution. + hessian : + A matrix of doubles, containing the Lagrangian's hessian of the solution. + + + + + Description + +Search the minimum of a multi-variable mixed integer non linear programming unconstrained optimization problem specified by : +Find the minimum of f(x) such that + + + +\begin{eqnarray} +&\mbox{min}_{x} +& f(x) +& x_{i} \in \!\, \mathbb{Z}, i \in \!\, I +\end{eqnarray} + + + +intfminunc calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem. + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); + +IntegerTolerance : A Scalar, a number with that value of an integer is considered integer. +MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search. +CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take. +AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped. +MaxIter : A scalar, specifying the maximum number of iterations that the solver should take. +gradobj : A string, to turn on or off the user supplied objective gradient. +hessian : A scalar, to turn on or off the user supplied objective hessian. + + The default values for the various items are given as: + + + options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off") + + + + +The exitflag allows to know the status of the optimization which is given back by Ipopt. + +0 : Optimal Solution Found +1 : InFeasible Solution. +2 : Objective Function is Continuous Unbounded. +3 : Limit Exceeded. +4 : User Interrupt. +5 : MINLP Error. + + + +For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin + + + + + +A few examples displaying the various functionalities of intfminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + + Example + +We begin with the minimization of a simple non-linear function. + + +Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = x_{1}^{2} + x_{2}^{2} +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[1] \\ +\end{array} +\end{eqnarray} + + + + + + + + + Example + +We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of intfminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options. + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = 100\boldsymbol{\cdot} (x_{2} - x_{1}^{2})^{2} + (1-x_{1})^{2} +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[2] \\ +\end{array} +\end{eqnarray} + + + + + + + + + + + Example + +Unbounded Problems: Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +f(x) = -x_{1}^{2} - x_{2}^{2} +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[1] \\ +\end{array} +\end{eqnarray} + + + + + + + diff --git a/help/en_US/intqpipopt.xml b/help/en_US/intqpipopt.xml new file mode 100644 index 0000000..2859568 --- /dev/null +++ b/help/en_US/intqpipopt.xml @@ -0,0 +1,403 @@ + + + + + + + + intqpipopt + Solves a linear quadratic problem. + + + + + Calling Sequence + + xopt = intqpipopt(H,f) + xopt = intqpipopt(H,f,intcon) + xopt = intqpipopt(H,f,intcon,A,b) + xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq) + xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub) + xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0) + xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options) + xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options,"file_path") + [xopt,fopt,exitflag,output] = intqpipopt( ... ) + + + + + + Input Parameters + + H : + A symmetric matrix of doubles, representing the Hessian of the quadratic problem. + f : + A vector of doubles, representing coefficients of the linear terms in the quadratic problem. + intcon : + A vector of integers, representing the variables that are constrained to be integers. + A : + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. + b : + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). + Aeq : + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. + beq : + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). + lb : + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + ub : + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + x0 : + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + options : + A list, containing the option for user to specify. See below for details. + file_path : + path to bonmin opt file if used. + + + + Outputs + + xopt : + A vector of doubles, containing the computed solution of the optimization problem. + fopt : + A double, containing the value of the function at xopt. + exitflag : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. + output : + A structure, containing the information about the optimization. See below for details. + + + + + Description + +Search the minimum of a constrained linear quadratic optimization problem specified by : + + + +\begin{eqnarray} +&\mbox{min}_{x} +& 1/2⋅x^T⋅H⋅x + f^T⋅x \\ +& \text{subject to} & A⋅x \leq b \\ +& & Aeq⋅x = beq \\ +& & lb \leq x \leq ub \\ +& & x_i \in \!\, \mathbb{Z}, i \in \!\, intcon\\ +\end{eqnarray} + + + +intqpipopt calls Bonmin, a library written in C++ to solve the quadratic problem. + + +The exitflag allows to know the status of the optimization which is given back by Ipopt. + +0 : Optimal Solution Found +1 : InFeasible Solution. +2 : Objective Function is Continuous Unbounded. +3 : Limit Exceeded. +4 : User Interrupt. +5 : MINLP Error. + + + +For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin + + + + +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. + +output.constrviolation: The max-norm of the constraint violation. + + + + + + +A few examples displaying the various functionalities of intqpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + + Here we solve a simple objective function. + + +Find x in R^6 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) &= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\ +\text{Where: } H &= I_{6}\\ +F &= +\begin{array}{cccccc} +[1 & 2 & 3 & 4 & 5 & 6] +\end{array} +\end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[2 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + + + + Example + We proceed to add simple linear inequality constraints. + + + +\begin{eqnarray} +\&x_{2} + x_{4}+ 2x_{5} - x_{6}&\leq -1\\ +\&-x_{1} + 2x_{3} + x_{4} + x_{5}&\leq 2.5\\ +\end{eqnarray} + + + + + + + + + + Example + Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + +\begin{eqnarray} +&x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&= 1 \\ +&-x_{1} + 2x_{3}+ x_{4} + x_{5}&= 2\\ +&2x_{1} + 5x_{2}+ 3x_{3} + x_{5}&= 3 +\end{eqnarray} + + + + + + + + + +Example + + In this example, we proceed to add the upper and lower bounds to the objective function. + + + +\begin{eqnarray} +-1000 &\leq x_{1} &\leq 10000\\ +-10000 &\leq x_{2} &\leq 100\\ +0 &\leq x_{3} &\leq 1.5\\ +-1000 &\leq x_{4} &\leq 100\\ +-1000 &\leq x_{5} &\leq 100\\ +-1000 &\leq x_{6} &\leq 1000 +\end{eqnarray} + + + + + + + + + + Example + +In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options. + + + + + +Example +Infeasible Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints: + + +\begin{eqnarray} +begin{eqnarray} +\hspace{70pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&\leq -1\\ +\hspace{70pt} &-x_{1} + 2x_{3} + x_{4} + x_{5}&\leq 2.5\\ +\hspace{70pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&= 4 \\ +\hspace{70pt} &-x_{1} + 2x_{3}+ x_{4} + x_{5}&= 2\\ +\\ \end{eqnarray}\\ +\text{With integer constraints as: } \\ +\begin{eqnarray} +\begin{array}{c} +[2 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + + + Example + +Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) &= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\ +\text{Where H is specified below and} \\ +F &= +\begin{array}{cccccc} +[1 & 2 & 3 & 4 & 5 & 6] +\end{array} +\end{eqnarray}\\ +\text{Subjected to: }\\ +\begin{eqnarray} +\hspace{70pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&\leq -1\\ +\hspace{70pt} &-x_{1} + 2x_{3} + x_{4} + x_{5}&\leq 2.5\\ +\hspace{70pt} &x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&= 1 \\ +\hspace{70pt} &-x_{1} + 2x_{3}+ x_{4} + x_{5}&= 2\\ +\\ \end{eqnarray} + + + + + + + + + Authors + + Akshay Miterani and Pranav Deshpande + + + diff --git a/help/en_US/linprog.xml b/help/en_US/linprog.xml index c293b7e..88fe15a 100644 --- a/help/en_US/linprog.xml +++ b/help/en_US/linprog.xml @@ -35,92 +35,112 @@ - - Parameters + + Input Parameters c : - a vector of double, contains coefficients of the variables in the objective + A vector of doubles, containing the coefficients of the variables in the objective function. A : - a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1). Aeq : - a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1). lb : - Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. options : - a list containing the parameters to be set. + A list, containing the option for user to specify. See below for details. file : - a string describing the path to the mps file. + A string describing the path to the mps file. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a double, the value of the function at x. - status : - status flag returned from symphony. See below for details. + A double, containing the the function value at x. + exitflaf : + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The output data structure contains detailed information about the optimization process. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details. + + Description -OSI-CLP is used for solving the linear programming problems, OSI-CLP is a library written in C++. Search the minimum of a constrained linear programming problem specified by : \begin{eqnarray} -&\mbox{min}_{x} -& c^T⋅x \\ -& \text{subject to} & A⋅x \leq b \\ -& & Aeq⋅x = beq \\ -& & lb \leq x \leq ub \\ +\hspace{10pt} &\mbox{min}_{x} +\hspace{10pt} & c^T⋅x \\ +\hspace{10pt} & \text{Subjected to:} & A⋅x \leq b \\ +\end{eqnarray}\\ +\begin{eqnarray} +\hspace{115pt} & Aeq⋅x = beq \\ +\hspace{115pt} & lb \leq x \leq ub \\ \end{eqnarray} + + +OSI-CLP, an optimization library written in C++, is used for solving the linear programming problems. + + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: -The routine calls Clp for solving the linear programming problem, Clp is a library written in C++. +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. In the current version it only contains maxiter. +The options should be defined as type "list" and consist of the following fields: -Syntax : options= list("MaxIter", [---]); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -Default Values : options = list("MaxIter", [3000]); +MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take. + + +The default values for the various items are given as: -The exitflag allows to know the status of the optimization which is given back by CLP. +options = list("MaxIter", [3000], "CpuTime", [600]); + + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Primal Infeasible -exitflag=2 : Dual Infeasible -exitflag=3 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=4 : Solution Abandoned -exitflag=5 : Primal objective limit reached. -exitflag=6 : Dual objective limit reached. +0 : Optimal Solution Found +1 : Primal Infeasible +2 : Dual Infeasible +3 : Maximum Number of Iterations Exceeded. Output may not be optimal. +4 : Solution Abandoned +5 : Primal objective limit reached. +6 : Dual objective limit reached. + -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.Iterations: The number of iterations performed. output.constrviolation: The max-norm of the constraint violation. -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for variable lower bounds. @@ -130,13 +150,41 @@ It has type "struct" and contains the following fields. + + +A few examples displaying the various functionalities of linprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + - Examples + Example + + Here we solve a simple objective function, subjected to six linear inequality constraints. + + +Find x in R^2 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = -x_{1} - \dfrac{x_{2}}{3} \\ +\end{eqnarray} +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{1pt} &x_{1} + x_{2}&\leq 2\\ +\hspace{1pt} &x_{1} + \dfrac{x_{2}}{4}&\leq 1\\ +\hspace{1pt} &x_{1} - x_{2}&\leq 2\\ +\hspace{1pt} &-\dfrac{x_{1}}{4} - x_{2}&\leq 1\\ +\hspace{1pt} &-x_{1} - x_{2}&\leq -1\\ +\hspace{1pt} &-x_{1} + x_{2}&\leq 2\\ +\end{eqnarray} + + + + + - Examples + Example + +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + + +\begin{eqnarray} +\hspace{1pt} &x_{1} + \dfrac{x_{2}}{4}&= 1/2 +\end{eqnarray} + + + + - Examples + Example + +In this example, we proceed to add the upper and lower bounds to the objective function. + + + +\begin{eqnarray} +-1 &\leq x_{1} &\leq 1.5\\ +-0.5 &\leq x_{2} &\leq 1.25 +\end{eqnarray} + + + + - - Examples - Example + + +Primal Infeasible Problems: Find x in R^3 such that it minimizes: + + + +\begin{eqnarray} +mbox{min}_{x}\ f(x) = x_{1} - x_{2} \- x_{3}\\ +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &x_{1} + 2x_{2} - x{3}&\leq -4\\ +\hspace{70pt} &x_{1} + 4x_{2} + 3x{3}&= 10\\ +\hspace{70pt} &x_{1} + x_{2}&= 100\\ +\end{eqnarray} +\\ +\begin{eqnarray} +\hspace{135pt}0 &\leq x_{1} &\leq \infty\\ +\hspace{135pt}0 &\leq x_{2} &\leq \infty\\ +\hspace{135pt}0 &\leq x_{3} &\leq \infty +\end{eqnarray} + + + + - Examples + Example + + +Unbounded Problems: Find x in R^3 such that it minimizes: + + + +\begin{eqnarray} +mbox{min}_{x}\ f(x) = x_{1} - x_{2} \- x_{3}\\ +\end{eqnarray} +\\\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &-x_{1} - x_{2} + 4x{3}&\leq -8\\ +\hspace{70pt} &x_{1} + x_{2} + 4x{3}&\leq 5\\ +\end{eqnarray} +\\ +\begin{eqnarray} +\hspace{115pt}-\infty &\leq x_{1} &\leq \infty\\ +\hspace{115pt}-\infty &\leq x_{2} &\leq \infty\\ +\hspace{115pt}-\infty &\leq x_{3} &\leq \infty +\end{eqnarray} + + + + - Examples + Example + + + + Authors diff --git a/help/en_US/lsqlin.xml b/help/en_US/lsqlin.xml index 466c1cf..51c1a3a 100644 --- a/help/en_US/lsqlin.xml +++ b/help/en_US/lsqlin.xml @@ -28,104 +28,115 @@ xopt = lsqlin(C,d,A,b,Aeq,beq) xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub) xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) - xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,param) + xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin( ... ) - Parameters + Input Parameters C : - a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x. + A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x. d : - a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix. + A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix. A : - a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). Aeq : - a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). lb : - a vector of double, contains lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of double, contains upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. x0 : - a vector of double, contains initial guess of variables. - param : - a list containing the parameters to be set. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. resnorm : - a double, objective value returned as the scalar value norm(C⋅x-d)^2. + A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2. residual : - a vector of double, solution residuals returned as the vector d-C⋅x. + A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x. exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details. - Description -Search the minimum of a constrained linear least square problem specified by : +Search the minimum of a constrained linear least square problem specified by: \begin{eqnarray} -&\mbox{min}_{x} -& 1/2||C⋅x - d||_2^2 \\ -& \text{subject to} & A⋅x \leq b \\ -& & Aeq⋅x = beq \\ -& & lb \leq x \leq ub \\ +\hspace{10pt} &\mbox{min}_{x} +\hspace{10pt} & 1/2||C⋅x - d||_2^2 \\ +\hspace{10pt} & \text{Subjected to: } & A⋅x \leq b \\ +\hspace{10pt} & & Aeq⋅x = beq \\ +\hspace{10pt} & & lb \leq x \leq ub \\ \end{eqnarray} -The routine calls Ipopt for solving the linear least square problem, Ipopt is a library written in C++. +lsqlin calls Ipopt, an optimization library written in C++, to solve the linear least squares problem. + + +The options should be defined as type "list" and consist of the following fields: + + +options= list("MaxIter", [---], "CpuTime", [---]); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -Syntax : options= list("MaxIter", [---], "CpuTime", [---]); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. -The exitflag allows to know the status of the optimization which is given back by Ipopt. + The default values for the various items are given as: + + +options = list("MaxIter", [3000], "CpuTime", [600]); + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. output.constrviolation: The max-norm of the constraint violation. -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -133,35 +144,133 @@ It has type "struct" and contains the following fields. lambda.eqlin: The Lagrange multipliers for the linear equality constraints. lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints. - + + + +A few examples displaying the various functionalities of lsqlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + - Examples + Example + + We begin with a simple objective function subjected to three inequality constraints. + + + +\begin{eqnarray} +&\mbox{min}_{x} 1/2||C⋅x - d||_2^2 \\ +\end{eqnarray} +\\ +\text{Where C⋅x - d = }\:\begin{cases} +\begin{eqnarray} +\hspace{1pt} &x_{1} + x_{2} + x_{3} - 89\\ +\hspace{1pt} &x_{1} + x_{2} - 67\\ +\hspace{1pt} &x_{2} + x_{3} - 53\\ +\hspace{1pt} &x_{1} - 35\\ +\hspace{1pt} &x_{3} - 20\\ +\end{eqnarray} +\end{cases} +\\ +& \text{Subjected to:} \\ +\begin{eqnarray} +\hspace{70pt} &3x_{1} + 2x_{2} + x_{3}&\leq 191\\ +\hspace{70pt} &2x_{1} + 3x_{2} + 4x_{3}&\leq 209\\ +\hspace{70pt} &x_{1} + 2x_{2} + 3x_{3}&\leq 162\\ +\end{eqnarray} + + + + + + + Example + + Here we build up on the previous example by adding equality constraints. +We add the following constraint to the problem specified above: + + + +\begin{eqnarray} +x_{1} + 2x_{2} + x_{3}&= 10\\ +\end{eqnarray} + + + + + - Examples + Example + + In this example, we proceed to add the upper and lower bounds to the objective function. + + + +\begin{eqnarray} +0.1 &\leq x_{1} &\leq 4\\ +3 &\leq x_{2} &\leq 5\\ +1 &\leq x_{3} &\leq 1 +\end{eqnarray} + + + + + + Example + + In this example, we proceed to provide an initial value for x to facilitate the computation. We also further enhance the functionality of lsqlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation. + + + + + + + + Example + + Infeasible Problems: Find x in R^3 such that it minimizes: +We add the following constraint to the objective function specified above: + + + + \begin{eqnarray} +3x_{1} + 2x_{2} + x_{3}&\leq 191\\ +2x_{1} + 3x_{2} + 4x_{3}&\leq 209\\ +x_{1} + 2x_{2} + 3x_{3}&\leq 162\\ +\end{eqnarray} +\begin{eqnarray} +x_{1} + 2x_{2} + 3x_{3}&= 200\\ +\end{eqnarray} + + + + + + + Authors diff --git a/help/en_US/lsqnonlin.xml b/help/en_US/lsqnonlin.xml index d7b8110..ad00228 100644 --- a/help/en_US/lsqnonlin.xml +++ b/help/en_US/lsqnonlin.xml @@ -36,32 +36,37 @@ - Parameters + Input Parameters fun : - a function, representing the objective function and gradient (if given) of the problem + A function, representing the objective function and gradient (if given) of the problem. x0 : - a vector of double, contains initial guess of variables. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. lb : - a vector of double, contains lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of double, contains upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. options : - a list containing the parameters to be set. + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. resnorm : - a double, objective value returned as the scalar value i.e. sum(fun(x).^2). + A double, containing the objective value returned as a scalar value i.e. sum(fun(x).^2). residual : - a vector of double, solution of objective function i.e. fun(x). + A vector of doubles, containing the solution of the objective function, returned as a vector i.e. fun(x). exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details. gradient : - a vector of doubles, containing the Objective's gradient of the solution. + A vector of doubles, containing the objective's gradient of the solution. @@ -73,51 +78,59 @@ Search the minimum of a constrained non-linear least square problem specified by \begin{eqnarray} -&\mbox{min}_{x} -& (f_1(x)^2 + f_2(x)^2 + ... + f_n(x)^2) \\ -& lb \leq x \leq ub \\ +\hspace{1pt} &\mbox{min}_{x} +\hspace{1pt} & (f_{1}(x)^{2} + f_{2}(x)^{2} + f_{n}(x)^{2}) \\ +\hspace{1pt} & & lb \leq x \leq ub \\ \end{eqnarray} -The routine calls fmincon which calls Ipopt for solving the non-linear least square problem, Ipopt is a library written in C++. +lsqnonlin calls fmincon, which calls Ipopt, an optimization library written in C++ to solve the non-linear least squares problem. + + + +The options should be defined as type "list" and consist of the following fields: + + +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -Syntax : options= list("MaxIter", [---], "CpuTime", [---],"GradObj", "on"); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -GradObj : a string, representing the gradient function is on or off. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600], "GradObj", "off"); +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. +GradObj : A string, representing whetherthe gradient function is on or off. -The exitflag allows to know the status of the optimization which is given back by Ipopt. + The default values for the various items are given as: + + +Default Values : options = list("MaxIter", [3000], "CpuTime", [600], "GradObj", "off"); + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. output.constrviolation: The max-norm of the constraint violation. - - -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. + + +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -127,9 +140,70 @@ It has type "struct" and contains the following fields. + +A few examples displaying the various functionalities of lsqnonlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + + Here we solve a simple non-linear least square example taken from leastsq default present in scilab. + + + +Find x in R^2 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = sum_{i=1,...,n} & wm_{i}^{2} (x_{1} \boldsymbol{\cdot} exp(-x_{2}\boldsymbol{\cdot} tm)) - ym_{i} )^{2}\\ +\end{eqnarray}\\ +\text{With initial values as: }\\ +\begin{array}{cc} +[1.5 & 0.8] +\end{array} + + + + - Examples +Example + + Here we build up on the previous example by adding upper and lower bounds to the variables. +We add the following bounds to the problem specified above: + + + +\begin{eqnarray} +-5 &\leq x_{1} &\leq 10\\ +-5 &\leq x_{2} &\leq 10\\ +\end{eqnarray} + + + + - Examples + Example + + In this example, we further enhance the functionality of lsqnonlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation. + + + diff --git a/help/en_US/lsqnonneg.xml b/help/en_US/lsqnonneg.xml index a8d7a00..7d13b0c 100644 --- a/help/en_US/lsqnonneg.xml +++ b/help/en_US/lsqnonneg.xml @@ -25,31 +25,38 @@ Calling Sequence xopt = lsqnonneg(C,d) - xopt = lsqnonneg(C,d,param) + xopt = lsqnonneg(C,d,options) [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg( ... ) - Parameters + Input Parameters - C : - a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x. - d : - a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix. + C : + A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x. + d : + A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix. + options: + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. resnorm : - a double, objective value returned as the scalar value norm(C⋅x-d)^2. + A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2. residual : - a vector of double, solution residuals returned as the vector d-C⋅x. + A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x. exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers at the optimized point. See below for details. @@ -61,50 +68,57 @@ Solves nonnegative least-squares curve fitting problems specified by : \begin{eqnarray} -&\mbox{min}_{x} -& 1/2||C⋅x - d||_2^2 \\ -& & x \geq 0 \\ +\hspace{1pt} &\mbox{min}_{x} +\hspace{1pt} & 1/2||C⋅x - d||_2^2 \\ +\hspace{1pt} & & x \geq 0 \\ \end{eqnarray} -The routine calls Ipopt for solving the nonnegative least-squares curve fitting problems, Ipopt is a library written in C++. +lsqlin calls Ipopt, an optimization library written in C++, to solve the nonnegative least-squares curve fitting problem. + + +The options should be defined as type "list" and consist of the following fields: + + +options= list("MaxIter", [---], "CpuTime", [---]); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -Syntax : options= list("MaxIter", [---], "CpuTime", [---]); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. -The exitflag allows to know the status of the optimization which is given back by Ipopt. + The default values for the various items are given as: + + +options = list("MaxIter", [3000], "CpuTime", [600]); + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ - -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. + +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. output.constrviolation: The max-norm of the constraint violation. - -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. + +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -114,11 +128,35 @@ It has type "struct" and contains the following fields. - + +A few examples displaying the various functionalities of lsqnonneg have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + - Examples + Example + + We begin with a simple objective function. + + + +\begin{eqnarray} +\mbox{min}_{x} 1/2||C⋅x - d||_2^2 \\ +\end{eqnarray} +\\ +\text{Where C⋅x - d = }\:\begin{cases} +\begin{eqnarray} +x_{1} + x_{2} + x_{3} - 89\\ +x_{1} + x_{2} - 67\\ +x_{2} + x_{3} - 53\\ +x_{1} - 35\\ +x_{3} - 20 +\end{eqnarray} +\end{cases} + + + + + + Example + + In this example, we further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation. + + + + + + Authors diff --git a/help/en_US/master_help.xml b/help/en_US/master_help.xml index 9ee0e95..61a97a6 100644 --- a/help/en_US/master_help.xml +++ b/help/en_US/master_help.xml @@ -1,77 +1,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]> FOSSEE Optimization Toolbox - + FOSSEE Optimization Toolbox -&a92eced2aa34d57e217f07f2fabc26015; -&af80e0067cc98fa7c43cd2eba2f35c3ed; -&a509a9124674982a1290c749742e9e967; -&ac53013fb2994321eb9111fe3659619da; -&a39dbc3631556ef691d9c72fa40eedb23; -&a026dada486834a1daad95c67e01b47c8; -&a2c9be5aa4d1584f00755b3f1e2646be0; -&a34c8973744bf6bb1d379121abf614ab1; -&a91da8531563ac42d888f1a374eb06bcf; -&a04ba8859261000cce094f4c6a2a7debb; -&acb9324f64e9a65fb87ce330b5f7adfac; -&a7b01b92c2c653f07ac6e8fc0c1ec3fa9; -&a91dadea5918828de94a4845c2ad3cbe5; - +&ab9284536c34f12d9a4b19e56adf45677; +&a68027d14b445e9a80c99db037a9a92be; +&abb3bc8ab225c144bcef1e6b6091a30bd; +&a79a5837d77e1f7d1362ab88658c83392; +&aba3a2c7b1d9d1b590e1e6cf026fbd61a; +&afad5ce056fc44f6fd6eb37bc852d8f96; +&a04fefd69d8d71ae91022d6f5a5d13f78; +&a5eef5c052b75ccebb231247ee0327dde; +&ad01581a00a2951535c2e793a3d6260f3; +&a51c29c904c23d3c07aed6440e4ace159; +&ac8230bd6bc161d1752ee2842ab325ac6; +&ab9fc6f609f408425f85a8e0f745a08bf; +&af99df28f906bded1989ecff453073c23; +&ae7d11486642d253d2305574e5e54ee4a; +&a2044c6efdcc70ec5f51c613c7e8615cb; +&a01347f2b72f552c083ad8c3f3359f5d3; +&aaaebafd2c3bea7c08d2abc206ea3a7d1; +&aea11a60fad412727127211b3ebfaf2e4; +&abed85d66434b5f0119f94523d4a3d660; + Symphony Native Functions -&a299b635b31e2db70864d304bb5bceaec; -&a3c37159c7ab704bd66abf5648f295468; -&a085eae9f22effcadae84f3a0e8e2fc75; -&a570e4c44a691678f230892fe02ca2b51; -&acae11d784b796c42c7af62d71d03bf57; -&a7e224d80b9ac6726352e5230a0908db9; -&a088faceaed3d1bc6a75143bd16aae9e8; -&a29b8c6fa5ef0455b5cd6c096ab02394e; -&ac65519a5c3a12f415702f36d56c06b7a; -&aee04edd2012fe6b8befe0f131481652b; -&a2c9633d776f1ad4163beb33f0641d12a; -&a94736872415541e800b4cac737552cd1; -&a1bc19dc158a31636a939b2432c8a756b; -&ac2e23ef5f086c6453ecabe7a751b54c2; -&abcd5cea99a5a2d7dcf083cf71cadcdc2; -&a8971ebf56653b9c834f7fddb337fcf5f; -&a6fe61e93e31da551b2f5b4de11f1de76; -&a101e2ec4202f07d6e865a0e3dacec8ff; -&a601c04c4055b06419e9053e32fa7d634; -&a0ff380cbe9c313ce15abf3d4d7e936d6; -&a3372a734bcc94354b2828efc1d6a656b; -&aa598e28250e5b02ca42d75d425f4cb1d; -&aeed0c1022d63f46f70b51de305af7216; -&a8a0b36f0d54c5eb6a72c1faf3c83a337; -&abcffa91be0617e9225553ba3bff73bc9; -&a803047e8a099a6922fd3f8ad3465cc20; -&acc519135c27808c7384b63a5d02ce151; -&acec448eb5171fee866bad26b90c4d940; -&aace91ff92c71938d3a078c25f14bcd12; -&a08fa5121c2a1da6a3403c685a4440045; -&afc88c6731d2a13689d0386323dabaf1f; -&abbd5e696c29a743c5e8b2919850023d9; -&ad42100b84e76d682d84f78e47074ce8f; -&a207bfa75b9fecbe13ee7c72de67d3e84; -&a2b8e2f18c416c9b940d0727b56280a64; -&a903f3bd7f43b818c64c93de95f4a77d4; -&ac92a4e41e3a85aea1ebd7d34b93847cd; -&ac7f125c90e7b2a8ef81f2146a8412b86; -&a8ea073f61c1f35277fca99adeb5ddfdd; -&a4080158aa253bb7f481329789c4694bf; -&ae70309215de55c8b5303ddac915e748b; -&afe518887e8a4b614af0c4f083853c3d9; -&ac0da615fcbc12006669e51203f21e0ca; -&a84c5e30ad3344cd01bcc8a2defcc9302; -&a3c1fb2ff727602439f279a49ab2c4f93; -&af30ba120252b44132a7e6f980d278e35; -&a74de3ec262039e36129db2247cd5a95c; -&a02950dff19641d3ab4775804986a2082; -&a26995f0438c2be3d6825d7bc87dca338; -&a07ff0bb9910cdd63e5f08fb85234a363; -&a6093e215e37e9307c9d0bc568c56192e; -&aec62fa64d07444036a1bc13d175cad3c; -&a5432a14d8d225d4a5ceb66505cc3787e; -&a67afd21ee0b9a70b1b895139c2f14be1; -&aa1119c9d7197ec0756f502283db9ede4; -&ab3460c49b7e2246f67cfecc58c0c2549; -&a4cc74dec0f5c92cbe95dfb00f3add455; -&a96423c1495815ea0b826925862c2d698; +&a05c7f64336484a2e23add77c9d9022b7; +&aa739b30eee4e7459eb0ebf00b01961b0; +&ab0a502fcbba1af672fde15c3c873b639; +&a741865fb8dddad5596e74c712533a9a4; +&ad183c147528b447765c54e547dbeeac3; +&a6a9b8f1a50bf8cd9a3c47f095ea7c4b8; +&a1e7d42e3aeb72c600115b0be6c9ab3b8; +&a0db28c738a343b84acdce023cdb7ae56; +&ad65783e767dea98c8c4c5a91bbc9e4bf; +&a06b31c7f4efd1119ee2ae95a84b3de3f; +&ab828f28244a0c4c13a970cdcef047c2e; +&ab9ae57dc2ddf407cc0c6d60facb5cb53; +&a82ca29677fb1fa4c516cb1cb83ddc119; +&a1443fd0519f034d4fe7bf27d4d38b31d; +&a686a9686678d67f2a352e53644f51e76; +&a390e3075826b9ad38d2d78463abe5d7b; +&adf749c47a61ec5edd977fa85919c6238; +&a5866c1ec3f7a5d6e7f7a72a8c724f2a9; +&a4893fd129bc44100db23b71d2825be6a; +&a651e9b3021310fcd01a0d1262297b20b; +&aa585876ac4d5d9c221f6cd54d549db8c; +&a23acbb114837a0f734433705e5d49857; +&ac8331f5af34d9542db493f60418cbb6f; +&ad95811961591bf4c687d331e9c19744d; +&adc1fd54b3ab0b8e430e54dcab5ec0a25; +&a75f2c21ce7f5bc379a07a03e66cdea12; +&ac29c6c4e37c5eb0766c97e485cf52fac; +&abd44d8cfcb00ad99e765617d12438a7d; +&a82b923786cf91c713bc2cd708f49bb83; +&a07e1c35ae4c965f382142faa5026e951; +&a13a19d34d6d5eb7adfe1ce80fec19ca4; +&accaae6049397afbb8fd45fb1ce762520; +&a50941f781d7e7e034ccd6ad45c0bb5f6; +&a1297e87a951e88b8cb0787f15856dc2d; +&aef7d004fae0b0ac903668eb119a970ff; +&a7e63e4064a3f365abb6f849d4cea229f; +&a7bfe31f0625363eb632561638d969f1d; +&a39468bb5debc5a92e0650f2e475c2a0f; +&a83c33e37fd4fb889dbd28ec80c5a5ca5; +&add89e15c66000cc799e284ffeae7a462; +&a2ba1fee690e20abdca1aac4320e2dd29; +&a98d658d26c3d5a2a73a2ba98c7617e7e; +&a2414f826d115af98b31c9a8f3a56480a; +&ab2aac34bb9886065efb457f8981878aa; +&a4b67668840689c40ca32faed5c9a4f52; +&afed3335c161a93fc0aa582764cdd9b57; +&ad3f807a30d917e7fc04394e8cefc087c; +&a4af497a490b80f35c1c280696804ebe4; +&ad2f354d4c06af56d80f220116861d4d5; +&afd30361d50546575df57b2719efc91ca; +&aef5fc31a0b7274539dbbed6a356d8d05; +&a44361568dd7888bbb77a1bf8b86de01b; +&a996b6e5a5e6319c2939b0a4257e6a789; +&a53b5f5de97f2571acf03690e490e9c7b; +&a205a454c4dd602cb03509a3dffa2d53e; +&ab125c7e6154b1b102d40742bcc387bc8; +&a6217d836ddd417a9216dd106154409f6; +&a6fef794c74266e9488548c354ef54137; diff --git a/help/en_US/qpipopt.xml b/help/en_US/qpipopt.xml index bf8be2a..2b79e7c 100644 --- a/help/en_US/qpipopt.xml +++ b/help/en_US/qpipopt.xml @@ -26,47 +26,52 @@ xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB) xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0) - xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,options) [xopt,fopt,exitflag,output,lamda] = qpipopt( ... ) - Parameters + Input Parameters nbVar : - a double, number of variables + A double, denoting the number of variables nbCon : - a double, number of constraints + A double, denoting the number of constraints H : - a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem. + A symmetric matrix of doubles, representing the Hessian of the quadratic problem. f : - a vector of double, represents coefficients of linear in the quadratic problem + A vector of doubles, representing coefficients of the linear terms in the quadratic problem. lb : - a vector of double, contains lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables. ub : - a vector of double, contains upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables. A : - a matrix of double, contains the constraint matrix conLB ≤ A⋅x ≤ conUB. + A matrix of doubles, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB. conLB : - a vector of double, contains lower bounds of the constraints conLB ≤ A⋅x ≤ conUB. + A vector of doubles, containing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB. conUB : - a vector of double, contains upper bounds of the constraints conLB ≤ A⋅x ≤ conUB. + A vector of doubles, containing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB. x0 : - a vector of double, contains initial guess of variables. - param : - a list containing the parameters to be set. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. + options : + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a double, the value of the function at x. + A double, containing the value of the function at xopt. exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details. @@ -78,51 +83,59 @@ Search the minimum of a constrained linear quadratic optimization problem specif \begin{eqnarray} -&\mbox{min}_{x} -& 1/2⋅x^T⋅H⋅x + f^T⋅x \\ -& \text{subject to} & conLB \leq A⋅x \leq conUB \\ -& & lb \leq x \leq ub \\ +\hspace{1pt} \mbox{min}_{x} 1/2⋅x^T⋅H⋅x + f^T⋅x \\ +\hspace{1pt} \text{Subjected to: } conLB \leq A⋅x \leq conUB \\ +\hspace{70pt} lb \leq x \leq ub \\ \end{eqnarray} -The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++. +qpipopt calls Ipopt, an optimization library written in C++, to solve the optimization problem. + + +Options +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. +The options should be defined as type "list" and consist of the following fields: -Syntax : options= list("MaxIter", [---], "CpuTime", [---]); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. -The exitflag allows to know the status of the optimization which is given back by Ipopt. + The default values for the various items are given as: + + +options = list("MaxIter", [3000], "CpuTime", [600]); + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. output.constrviolation: The max-norm of the constraint violation. -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -134,20 +147,122 @@ It has type "struct" and contains the following fields. - + +A few examples displaying the various functionalities of qpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + - Examples + Example + + We begin with a quadratic objective functions, subjected to two bounds for the functions, and two bounds for the constraints. + + +Find x in R^2 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\ +\end{eqnarray} +\\ +\hspace{1pt} & \text{Subjected to}\\ + \begin{eqnarray} +-\infty &\leq 2x_{1} &\leq 5\\ +-\infty &\leq x_{2} &\leq 3\\ +0 &\leq x_{1} &\leq \infty\\ +0 &\leq x_{2} &\leq \infty +\end{eqnarray} + + + + = 0, // x2 >= 0 -H = [2 0 -0 8]; +H = [-16 0; 0 8]; +f = [-8; -16]; +A = [1 1;1 0]; +conUB = [5;3]; +conLB = [-%inf; -%inf]; +lb = [0; 0]; +ub = [%inf; %inf]; +nbVar = 2; +nbCon = 2; +[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB) +//Press ENTER to continue + + ]]> + + + + Example + + We build on the previous example by providing a starting point, to facilitate the computation. + + + + \begin{eqnarray} +\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\ +\end{eqnarray} +\\ +& \text{Subjected to}\\ + \begin{eqnarray} +-\infty &\leq x_{1} +x_{2} &\leq 5\\ +-\infty &\leq x_{1} &\leq 3\\ +0 &\leq x_{1} &\leq \infty\\ +0 &\leq x_{2} &\leq \infty +\end{eqnarray} + + + + + + + + + Example + +We can further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation. + + + + \begin{eqnarray} +\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\ +\end{eqnarray} +\\ +& \text{Subjected to}\\ + \begin{eqnarray} +-\infty &\leq x_{1} +x_{2} &\leq 5\\ +-\infty &\leq x_{1} &\leq 3\\ +0 &\leq x_{1} &\leq \infty\\ +0 &\leq x_{2} &\leq \infty +\end{eqnarray} + + + + + + + + Example + +Infeasible Problems: Find x in R^2 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\ +\end{eqnarray} +\\ +\hspace{1pt} & \text{Subjected to}\\ + \begin{eqnarray} +-\infty &\leq 2x_{1} &\leq 5\\ +-\infty &\leq x_{2} &\leq 3\\ +4 &\leq x_{1} &\leq \infty\\ +0 &\leq x_{2} &\leq \infty +\end{eqnarray} + + + + + = 0, +// x2 >= 0 +H = [-16 0; 0 8]; +f = [-8; -16]; +A = [1 1;1 0] +conUB = [5;3]; +conLB = [-%inf; -%inf]; +lb = [4; 0]; +ub = [%inf; %inf]; +nbVar = 2; +nbCon = 2; [xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB) //Press ENTER to continue @@ -163,25 +323,40 @@ nbCon = 2; - Examples + Example + +Unbounded Problems: Find x in R^2 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x} -8x_{1}^{2} -16x_{2}^{2} + x_{1} + 4x_{2} \\ +\end{eqnarray}\\ +& \text{Subjected to}\\ + \begin{eqnarray} +-\infty &\leq 2x_{1} &\geq -5\\ +-\infty &\leq x_{2} &\leq 3\\ +0 &\leq x_{1} &\leq \infty\\ +0 &\leq x_{2} &\leq \infty +\end{eqnarray} + + + + diff --git a/help/en_US/qpipoptmat.xml b/help/en_US/qpipoptmat.xml index d8a9ac3..eee5dbf 100644 --- a/help/en_US/qpipoptmat.xml +++ b/help/en_US/qpipoptmat.xml @@ -36,38 +36,43 @@ - Parameters + Input Parameters H : - a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem. + A symmetric matrix of doubles, representing the Hessian of the quadratic problem. f : - a vector of double, represents coefficients of linear in the quadratic problem + A vector of doubles, representing coefficients of the linear terms in the quadratic problem. A : - a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1). Aeq : - a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1). lb : - a vector of double, contains lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of double, contains upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. x0 : - a vector of double, contains initial guess of variables. + A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables. param : - a list containing the parameters to be set. + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a double, the value of the function at x. + A double, containing the value of the function at xopt. exitflag : - The exit status. See below for details. + An integer, containing the flag which denotes the reason for termination of algorithm. See below for details. output : - The structure consist of statistics about the optimization. See below for details. + A structure, containing the information about the optimization. See below for details. lambda : - The structure consist of the Lagrange multipliers at the solution of problem. See below for details. + A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details. @@ -79,52 +84,63 @@ Search the minimum of a constrained linear quadratic optimization problem specif \begin{eqnarray} -&\mbox{min}_{x} -& 1/2⋅x^T⋅H⋅x + f^T⋅x \\ -& \text{subject to} & A⋅x \leq b \\ -& & Aeq⋅x = beq \\ -& & lb \leq x \leq ub \\ +\hspace{1pt} &\mbox{min}_{x} +\hspace{1pt} & 1/2⋅x^T⋅H⋅x + f^T⋅x \\ +\hspace{1pt} & \text{Subjected to: } & A⋅x \leq b \\ +\end{eqnarray}\\ +\begin{eqnarray} +\hspace{115pt} & Aeq⋅x = beq \\ +\hspace{115pt} & lb \leq x \leq ub \\ \end{eqnarray} -The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++. +qpipoptmat calls Ipopt, an optimization library written in C++, to solve the optimization problem. + + Options + +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by: + + +options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---); -The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. +The options should be defined as type "list" and consist of the following fields: -Syntax : options= list("MaxIter", [---], "CpuTime", [---]); -MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take. -CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take. -Default Values : options = list("MaxIter", [3000], "CpuTime", [600]); +MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take. +CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take. -The exitflag allows to know the status of the optimization which is given back by Ipopt. + The default values for the various items are given as: + + +options = list("MaxIter", [3000], "CpuTime", [600]); + + +The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: -exitflag=0 : Optimal Solution Found -exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal. -exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal. -exitflag=3 : Stop at Tiny Step. -exitflag=4 : Solved To Acceptable Level. -exitflag=5 : Converged to a point of local infeasibility. + 0 : Optimal Solution Found + 1 : Maximum Number of Iterations Exceeded. Output may not be optimal. + 2 : Maximum amount of CPU Time exceeded. Output may not be optimal. + 3 : Stop at Tiny Step. + 4 : Solved To Acceptable Level. + 5 : Converged to a point of local infeasibility. -For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/ +For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/ - -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. + +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. output.constrviolation: The max-norm of the constraint violation. -The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. lambda.lower: The Lagrange multipliers for the lower bound constraints. @@ -137,51 +153,239 @@ It has type "struct" and contains the following fields. + - Examples + Example + + Here we solve a simple objective function. + + +Find x in R^6 such that it minimizes: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) &= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\ +\text{Where: } H &= I_{6}\\ +F &= +\begin{array}{cccccc} +[1 & 2 & 3 & 4 & 5 & 6] +\end{array} +\end{eqnarray} + + + + + = 0, -// x2 >= 0 -H = [2 0 -0 8]; -f = [-8; -16]; -A = [1 1;1 0]; -b = [5;3]; -lb = [0; 0]; -ub = [%inf; %inf]; -[xopt,fopt,exitflag,output,lambda] = qpipoptmat(H,f,A,b,[],[],lb,ub) -// Press ENTER to continue +//Example 1: +//Minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f) + ]]> + + + Example + We proceed to add simple linear inequality constraints. + + + +\begin{eqnarray} +\hspace{1pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&\leq -1\\ +\hspace{1pt} &-x_{1} + 2x_{3} + x_{4} + x_{5}&\leq 2.5\\ +\end{eqnarray} + + + + + + - Examples + Example + Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: + + +\begin{eqnarray} +\hspace{1pt} &x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&= 1 \\ +\hspace{1pt} &-x_{1} + 2x_{3}+ x_{4} + x_{5}&= 2\\ +\hspace{1pt} &2x_{1} + 5x_{2}+ 3x_{3} + x_{5}&= 3 +\end{eqnarray} + + + + + + + + +Example + + In this example, we proceed to add the upper and lower bounds to the objective function. + + + +\begin{eqnarray} +-1000 &\leq x_{1} &\leq 10000\\ +-10000 &\leq x_{2} &\leq 100\\ +0 &\leq x_{3} &\leq 1.5\\ +-1000 &\leq x_{4} &\leq 100\\ +-1000 &\leq x_{5} &\leq 100\\ +-1000 &\leq x_{6} &\leq 1000 +\end{eqnarray} + + + + + + + + + + Example + +In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options. + + + + + +Example +Infeasible Problems: Find x in R^6 such that it minimizes the following objective function under the given constraints: + + +\begin{eqnarray} +\hspace{70pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&\leq -1\\ +\hspace{70pt} &-x_{1} + 2x_{3} + x_{4} + x_{5}&\leq 2.5\\ +\hspace{70pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&= 4 \\ +\hspace{70pt} &-x_{1} + 2x_{3}+ x_{4} + x_{5}&= 2\\ +\\ \end{eqnarray} + + + + + + + + + Example + +Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints: + + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) &= \dfrac{1}{2}x'\boldsymbol{\cdot} H\boldsymbol{\cdot}x + f' \boldsymbol{\cdot} x\\ +\text{Where H is specified below and}\\ +F &= +\begin{array}{cccccc} +[1 & 2 & 3 & 4 & 5 & 6] +\end{array} +\end{eqnarray}\\ +\text{Subjected to: }\\ +\begin{eqnarray} +\hspace{70pt} &x_{2} + x_{4}+ 2x_{5} - x_{6}&\leq -1\\ +\hspace{70pt} &-x_{1} + 2x_{3} + x_{4} + x_{5}&\leq 2.5\\ +\hspace{70pt} &x_{1} - x_{2} + x_{3} + 3x_{5} + x_{6}&= 1 \\ +\hspace{70pt} &-x_{1} + 2x_{3}+ x_{4} + x_{5}&= 2\\ +\\ \end{eqnarray} + + + + + + Authors diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS index b43f2ae..326b5fa 100644 Binary files a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS and b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS differ diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB index 35ed0b4..73a30c4 100644 Binary files a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB and b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB differ diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS index ba26c01..4bf7996 100644 Binary files a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS and b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS differ diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS index cd3a00e..a9e0ecc 100644 Binary files a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS and b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS differ diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA index 51ab351..753c46a 100644 --- a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA +++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA @@ -1,2 +1,2 @@ JavaSearch 1.0 -TMAP bs=2048 rt=1 fl=-1 id1=1539 id2=1 +TMAP bs=2048 rt=1 fl=-1 id1=1665 id2=1 diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP index cc3bed1..ce2c60e 100644 Binary files a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP and b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP differ diff --git a/help/en_US/scilab_en_US_help/ScilabCaution.png b/help/en_US/scilab_en_US_help/ScilabCaution.png index 8edb56e..231159a 100644 Binary files a/help/en_US/scilab_en_US_help/ScilabCaution.png and b/help/en_US/scilab_en_US_help/ScilabCaution.png differ diff --git a/help/en_US/scilab_en_US_help/ScilabEdit.png b/help/en_US/scilab_en_US_help/ScilabEdit.png index e139988..ff0cca7 100644 Binary files a/help/en_US/scilab_en_US_help/ScilabEdit.png and b/help/en_US/scilab_en_US_help/ScilabEdit.png differ diff --git a/help/en_US/scilab_en_US_help/ScilabImportant.png b/help/en_US/scilab_en_US_help/ScilabImportant.png index 3b51020..73931b2 100644 Binary files a/help/en_US/scilab_en_US_help/ScilabImportant.png and b/help/en_US/scilab_en_US_help/ScilabImportant.png differ diff --git a/help/en_US/scilab_en_US_help/ScilabNote.png b/help/en_US/scilab_en_US_help/ScilabNote.png index ed46c3e..6607ece 100644 Binary files a/help/en_US/scilab_en_US_help/ScilabNote.png and b/help/en_US/scilab_en_US_help/ScilabNote.png differ diff --git a/help/en_US/scilab_en_US_help/ScilabTip.png b/help/en_US/scilab_en_US_help/ScilabTip.png index ed46c3e..6607ece 100644 Binary files a/help/en_US/scilab_en_US_help/ScilabTip.png and b/help/en_US/scilab_en_US_help/ScilabTip.png differ diff --git a/help/en_US/scilab_en_US_help/ScilabWarning.png b/help/en_US/scilab_en_US_help/ScilabWarning.png index 8edb56e..231159a 100644 Binary files a/help/en_US/scilab_en_US_help/ScilabWarning.png and b/help/en_US/scilab_en_US_help/ScilabWarning.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png new file mode 100644 index 0000000..e3eba5b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png new file mode 100644 index 0000000..29943d1 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png new file mode 100644 index 0000000..dbf16d2 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png new file mode 100644 index 0000000..82ce2cc Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png new file mode 100644 index 0000000..aae7855 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png new file mode 100644 index 0000000..68e6bb8 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_cbcintlinprog.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png index 7d7a4b6..3573add 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png new file mode 100644 index 0000000..94584dd Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_10.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png new file mode 100644 index 0000000..3573add Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png new file mode 100644 index 0000000..08e675c Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png new file mode 100644 index 0000000..b0987d2 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png new file mode 100644 index 0000000..2de0e76 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png new file mode 100644 index 0000000..52fa7ee Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png new file mode 100644 index 0000000..3c07cf4 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png new file mode 100644 index 0000000..6f85d47 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_8.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png new file mode 100644 index 0000000..0e1062e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fgoalattain.xml_9.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png index 2634ce3..f43af1e 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png new file mode 100644 index 0000000..347aa1a Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png new file mode 100644 index 0000000..df17abe Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png new file mode 100644 index 0000000..7ab785c Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png new file mode 100644 index 0000000..516ce98 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png new file mode 100644 index 0000000..645166c Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png new file mode 100644 index 0000000..8a5be87 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png new file mode 100644 index 0000000..319c683 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminbnd.xml_8.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png index 07910ed..695054f 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png new file mode 100644 index 0000000..7614aa9 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_10.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png new file mode 100644 index 0000000..e9dc5f0 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_11.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png new file mode 100644 index 0000000..1ecc0e6 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_12.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png new file mode 100644 index 0000000..1d274b6 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png new file mode 100644 index 0000000..52fa7ee Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png new file mode 100644 index 0000000..3c07cf4 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png new file mode 100644 index 0000000..389e82b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png new file mode 100644 index 0000000..7614aa9 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png new file mode 100644 index 0000000..e9dc5f0 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png new file mode 100644 index 0000000..1ecc0e6 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_8.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png new file mode 100644 index 0000000..389e82b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fmincon.xml_9.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png index cc11a01..751e051 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png index 6a9edc4..e1c7e77 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png new file mode 100644 index 0000000..699caf3 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png new file mode 100644 index 0000000..2de0e76 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png new file mode 100644 index 0000000..52fa7ee Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png new file mode 100644 index 0000000..3c07cf4 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png new file mode 100644 index 0000000..389e82b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png new file mode 100644 index 0000000..0e1062e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_8.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png new file mode 100644 index 0000000..94584dd Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminimax.xml_9.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png index 5250091..6b1b89b 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png new file mode 100644 index 0000000..b99b4a7 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png new file mode 100644 index 0000000..db11a4b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png new file mode 100644 index 0000000..ee38156 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png new file mode 100644 index 0000000..db11a4b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png new file mode 100644 index 0000000..ee38156 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_fminunc.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png new file mode 100644 index 0000000..f43af1e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png new file mode 100644 index 0000000..347aa1a Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png new file mode 100644 index 0000000..df17abe Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png new file mode 100644 index 0000000..7ab785c Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png new file mode 100644 index 0000000..f6faa17 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png new file mode 100644 index 0000000..bf69434 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png new file mode 100644 index 0000000..43815d0 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminbnd.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png new file mode 100644 index 0000000..11677d5 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png new file mode 100644 index 0000000..bf40b5e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png new file mode 100644 index 0000000..52fa7ee Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png new file mode 100644 index 0000000..3c07cf4 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png new file mode 100644 index 0000000..ad7b9b2 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png new file mode 100644 index 0000000..392908b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png new file mode 100644 index 0000000..383d637 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfmincon.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png new file mode 100644 index 0000000..8521bee Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png new file mode 100644 index 0000000..e1c7e77 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png new file mode 100644 index 0000000..6c28cfe Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png new file mode 100644 index 0000000..2de0e76 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png new file mode 100644 index 0000000..52fa7ee Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png new file mode 100644 index 0000000..3c07cf4 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png new file mode 100644 index 0000000..389e82b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png new file mode 100644 index 0000000..0e1062e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_8.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png new file mode 100644 index 0000000..94584dd Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminimax.xml_9.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png new file mode 100644 index 0000000..b97584c Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png new file mode 100644 index 0000000..39a6e2f Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png new file mode 100644 index 0000000..46c3e5e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png new file mode 100644 index 0000000..b4d1474 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intfminunc.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png new file mode 100644 index 0000000..469a717 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png new file mode 100644 index 0000000..61c7608 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png new file mode 100644 index 0000000..6b4b847 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png new file mode 100644 index 0000000..f81313e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png new file mode 100644 index 0000000..9cb77a0 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png new file mode 100644 index 0000000..861e917 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png new file mode 100644 index 0000000..443d6ef Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_intqpipopt.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png index 1dd1d5e..c1b079b 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png new file mode 100644 index 0000000..084de0b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png new file mode 100644 index 0000000..27dcd00 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png new file mode 100644 index 0000000..2d6a863 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png new file mode 100644 index 0000000..25cab89 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png new file mode 100644 index 0000000..58414d6 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_linprog.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png index 9015755..0a3d488 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png new file mode 100644 index 0000000..4cd3433 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png new file mode 100644 index 0000000..4aae157 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png new file mode 100644 index 0000000..a1fc4ef Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png new file mode 100644 index 0000000..d89c545 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqlin.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png index 02e04b1..269e11b 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png new file mode 100644 index 0000000..563f915 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png new file mode 100644 index 0000000..ca95a51 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonlin.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png index 3dd57aa..803b4a7 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png new file mode 100644 index 0000000..8516499 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png index e2fbbde..7e6a426 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png new file mode 100644 index 0000000..073db6b Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png new file mode 100644 index 0000000..dcb1313 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png new file mode 100644 index 0000000..dcb1313 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png new file mode 100644 index 0000000..bffaa88 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png new file mode 100644 index 0000000..9bb0bd4 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipopt.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png index 3846115..de306de 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png new file mode 100644 index 0000000..65de87d Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png new file mode 100644 index 0000000..9e2ea9e Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png new file mode 100644 index 0000000..8d6bca1 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png new file mode 100644 index 0000000..9cb77a0 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png new file mode 100644 index 0000000..08bcfd8 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png new file mode 100644 index 0000000..443d6ef Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_qpipoptmat.xml_7.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png index 9155e8f..54149b0 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png new file mode 100644 index 0000000..e9a2fd1 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png new file mode 100644 index 0000000..fd99400 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphony.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png index 9c2039f..2958311 100644 Binary files a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png and b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_1.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png new file mode 100644 index 0000000..29943d1 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_2.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png new file mode 100644 index 0000000..dbf16d2 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_3.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png new file mode 100644 index 0000000..e9cfddd Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_4.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png new file mode 100644 index 0000000..aae7855 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_5.png differ diff --git a/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png new file mode 100644 index 0000000..68e6bb8 Binary files /dev/null and b/help/en_US/scilab_en_US_help/_LaTeX_symphonymat.xml_6.png differ diff --git a/help/en_US/scilab_en_US_help/cbcintlinprog.html b/help/en_US/scilab_en_US_help/cbcintlinprog.html new file mode 100644 index 0000000..3ee12ea --- /dev/null +++ b/help/en_US/scilab_en_US_help/cbcintlinprog.html @@ -0,0 +1,240 @@ + + + cbcintlinprog + + + + + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > cbcintlinprog + +

+

cbcintlinprog

+

Solves a mixed integer linear programming constrained optimization problem in intlinprog format.

+ + +

Calling Sequence

+
xopt = cbcintlinprog(c,intcon,A,b)
+xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq)
+xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub)
+xopt = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub,options)
+xopt = cbcintlinprog('path_to_mps_file')
+xopt = cbcintlinprog('path_to_mps_file',options)
+[xopt,fopt,status,output] = cbcintlinprog( ... )
+ +

Input Parameters

+
c : +

a vector of double, contains coefficients of the variables in the objective

+
intcon : +

Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.

+
A : +

A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

+
b : +

A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).

+
Aeq : +

A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

+
beq : +

A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).

+
lb : +

A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

+
ub : +

A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

+
options : +

A list, containing the option for user to specify. See below for details.

+

Outputs

+
xopt : +

A vector of doubles, containing the computed solution of the optimization problem.

+
fopt : +

A double, containing the the function value at x.

+
status : +

An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

+
output : +

A structure, containing the information about the optimization. See below for details.

+ +

Description

+

Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :

+

+

CBC, an optimization library written in C++, is used for solving the linear programming problems.

+

Options

+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

+

options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); +

  • IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.
  • +
  • MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.
  • +
  • MaxTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.
  • +
  • AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.
+ The default values for the various items are given as:

+

options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap')

+

The exitflag allows the user to know the status of the optimization which is returned by OSI-CBC. The values it can take and what they indicate is described below: +

  • 0 : Optimal Solution Found
  • +
  • 1 : Converged to a point of primal infeasibility.
  • +
  • 2 : Solution Limit is reached
  • +
  • 3 : Node Limit is reached. Output may not be optimal.
  • +
  • 4 : Numerical Difficulties.
  • +
  • 5 : Maximum amount of CPU Time exceeded.
  • +
  • 6 : Continuous Solution Unbounded.
  • +
  • 7 : Converged to a point of dual infeasibility.

+

For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Cbc

+

+ +

A few examples displaying the various functionalities of cbcintlinprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

+ +

Example

+

Here we solve a simple objective function, subjected to three linear inequality constraints.

+

Find x in R^8 such that it minimizes:

+

+
// Example 1:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
+    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
+    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
+//Defining the integer constraints
+intcon = [1 2 3 4];
+// Calling Symphony
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b)
+// Press ENTER to continue
+ +

Example

+

Here we build up on the previous example by adding upper and lower bounds to the variables. +We add the following bounds to the problem specified above:

+

+
// Example 2:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+  c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+  //Inequality constraints
+  A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
+      1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
+      1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+  b = [100 ,205, 249 ];
+
+  // Lower Bound of variable
+lb = repmat(0,1,8);
+// Upper Bound of variables
+ub = [repmat(1,1,4) repmat(%inf,1,4)];
+  //Integer Constraints
+  intcon = [1 2 3 4];
+  // Calling Symphony
+  [x,f,status,output] = cbcintlinprog(c,intcon,A,b,[],[],lb,ub)
+// Press ENTER to continue
+ +

Example

+

In this example, we proceed to add the linear equality constraints to the objective function.

+ +

+
// Example 3:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
+    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
+    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
+b = [100 ,205, 249 ];
+// Lower Bound of variable
+lb = repmat(0,1,8);
+// Upper Bound of variables
+ub = [repmat(1,1,4) repmat(%inf,1,4)];
+// Equality Constraints
+Aeq = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+beq = [ 25, 1.25, 1.25];
+  //Integer Constraints
+intcon = [1 2 3 4];
+// Calling CBC
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b,Aeq,beq,lb,ub)
+// Press ENTER to continue
+ +

Example

+

Primal Infeasible Problems: Find x in R^8 such that it minimizes:

+

Find x in R^8 such that it minimizes:

+

+
// Example 4:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer 
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints 
+A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
+    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
+    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ]; 
+b = [26.333 ,3.916 ,5.249 ];
+  //Integer Constraints
+intcon = [1 2 3 4];
+ 
+// Calling CBC
+ 
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b)
+// Press ENTER to continue
+ +

Example

+

Unbounded Problems. Find x in R^8 such that it minimizes:

+

+
// Example 5:
+// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
+// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
+//Inequality constraints
+A = [];
+b = [];
+// Equality Constraints
+Aeq = [5,3,4,6,1,1,1,1;
+5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
+5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
+beq = [ 25, 1.25, 1.25];
+  //Integer Constraints
+intcon = [1 2 3 4];
+// Calling CBC
+[x,f,status,output] = cbcintlinprog(c,intcon,A,b,Aeq,beq)
+// Press ENTER to continue
+ +

Authors

+
  • Akshay Miterani and Pranav Deshpande
+
+ + + + diff --git a/help/en_US/scilab_en_US_help/fgoalattain.html b/help/en_US/scilab_en_US_help/fgoalattain.html index 6f9a43a..5e97f2e 100644 --- a/help/en_US/scilab_en_US_help/fgoalattain.html +++ b/help/en_US/scilab_en_US_help/fgoalattain.html @@ -12,11 +12,11 @@
- << FOSSEE Optimization Toolbox + << cbcintlinprog - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fgoalattain + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fgoalattain

fgoalattain

@@ -49,92 +49,78 @@ [xopt,fval,attainfactor,exitflag,output] = fgoalattain(...) [xopt,fval,attainfactor,exitflag,output,lambda] = fgoalattain(...)
-

Parameters

+

Input Parameters

fun: -

a function that accepts a vector x and returns a vector F

+

A function that accepts a vector x as input and returns the value of objective function at x.

x0 : -

a vector of double, contains initial guess of variables.

+

A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

+
goal : +

A vector of doubles, containing the goals, which are the values the objective functions are supposed to achieve.

+
weights: +

A vector of doubles, containing the weights assigned to each objective function.

A : -

a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

+

A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

b : -

a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

+

A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

Aeq : -

a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

+

A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

beq : -

a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

+

A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1)

lb : -

a vector of double, contains lower bounds of the variables.

+

A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

ub : -

a vector of double, contains upper bounds of the variables.

+

A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

nonlcon: -

a function, the nonlinear constraints

+

A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.

options : -

a list, containing the option for user to specify. See below for details.

-
xopt : -

a vector of double, the computed solution of the optimization problem.

-
fopt : -

a double, the value of the function at x.

+

A list, containing the option for user to specify. See below for details.

+

Outputs

+
xopt : +

A vector of doubles, containing the computed solution of the optimization problem.

+
fval : +

A vector of doubles, containing the values of the objective functions at the end of the optimization problem.

attainfactor: -

The amount of over- or underachievement of the goals,γ at the solution.

+

The amount of over or underachievement of the goals () at the solution.

exitflag : -

The exit status. See below for details.

+

An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

output : -

The structure consist of statistics about the optimization. See below for details.

+

A structure, containing the information about the optimization. See below for details.

lambda : -

The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

+

A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.

Description

-

fgoalattain solves the goal attainment problem, which is one formulation for minimizing a multiobjective optimization problem. -Finds the minimum of a problem specified by: -Minimise Y such that

-

-

The solver makes use of fmincon to find the minimum.

-

The fgoalattain finds out the maximum value of Y for the objectives evaluated at the starting point and -adds that as another variable to the vector x -This is passed to the fmincon function to get the optimised value of Y -Hence, the algorithm used mainly is "ipopt" to obtain the optimum solution -The relations between f(x), Y, weights and goals are added as additional non-linear inequality constraints

-

The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

  • Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---);
  • -
  • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
  • -
  • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
  • -
  • GradObj : a function, representing the gradient function of the Objective in Vector Form.
  • -
  • GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 & m3 are number of non-linear inequality and equality constraints respectively.
  • -
  • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

-

By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of gattainObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates gattainObjfun gradient using numderivative toolbox.

-

If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.

-

Furthermore, we must enable the "GradObj" option with the statement : -

minimaxOptions = list("GradObj",fGrad);
-This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function.

-

The constraint function must have header : -

[c, ceq] = confun(x)
-where x is a n x 1 matrix of doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints). -On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints.

-

By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of confun. In case the GradObj option is on and GradCons option is off, fminimax approximates confun gradient using numderivative toolbox.

-

If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.

-

Furthermore, we must enable the "GradCon" option with the statement : -

minimaxOptions = list("GradCon",confunGrad);
-This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function.

-

The constraint derivative function must have header : -

[dc,dceq] = confungrad(x)
-where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles.

-

The exitflag allows to know the status of the optimization which is given back by Ipopt. -

  • exitflag=0 : Optimal Solution Found
  • -
  • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
  • -
  • exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
  • -
  • exitflag=3 : Stop at Tiny Step.
  • -
  • exitflag=4 : Solved To Acceptable Level.
  • -
  • exitflag=5 : Converged to a point of local infeasibility.

-

For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

-

The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

  • output.Iterations: The number of iterations performed during the search
  • -
  • output.Cpu_Time: The total cpu-time spend during the search
  • -
  • output.Objective_Evaluation: The number of Objective Evaluations performed during the search
  • -
  • output.Dual_Infeasibility: The Dual Infeasiblity of the final soution

-

The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

fgoalattain solves the goal attainment problem, which is a formulation for minimizing a multiobjective optimization problem. Find the minimum of a problem specified by:

+

Minimise such that:

+

+

+

The solver makes use of fmincon, which uses the Ipopt solver, an optimization library written in C++, to solve the problem.

+

Options

+

The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

+

options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);

+

The options should be defined as type "list" and consist of the following fields: +

  • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
  • +
  • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.
  • +
  • GradObj : A function, representing the gradient function of the Objective in Vector Form.
  • +
  • GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.
+The default values for the various items are given as:

+

options = list("MaxIter", [3000], "CpuTime", [600]);

+ +

The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

  • 0 : Optimal Solution Found
  • +
  • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
  • +
  • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
  • +
  • 3 : Stop at Tiny Step.
  • +
  • 4 : Solved To Acceptable Level.
  • +
  • 5 : Converged to a point of local infeasibility.

+

For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

+

The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

  • output.Iterations: The number of iterations performed.
  • +
  • output.Cpu_Time : The total cpu-time taken.
  • +
  • output.Objective_Evaluation: The number of Objective Evaluations performed.
  • +
  • output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.
  • +
  • output.Message: The output message for the problem.

+

The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

  • lambda.lower: The Lagrange multipliers for the lower bound constraints.
  • lambda.upper: The Lagrange multipliers for the upper bound constraints.
  • @@ -144,22 +130,223 @@ It has type "struct" and contains the following fields.
  • lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.

-

Examples

-
function f1=gattainObjfun(x)
+

A few examples displaying the various functionalities of fgoalattain have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

+

Example

+ Here we solve a simple objective function, subjected to no constraints. +

+

+
//Example 1:
+// Objective function
+function f1=gattainObjfun(x)
 f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
 f1(2)=-x(1)*x(1)-3*x(2)*x(2)
 f1(3)=x(1)+3*x(2)-18
 f1(4)=-x(1)-x(2)
 f1(5)=x(1)+x(2)-8
 endfunction
+// The initial guess
 x0=[-1,1];
+//Specifying the goal and the weights
 goal=[-5,-3,-2,-1,-4];
 weight=abs(goal)
-//gval  =[- 0.0000011 -63.999998 -2.0000002 -8 3.485D-08]
-//z  = [4 3.99]
 //Run fgoalattain
 [x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight)
+

Example

+ We proceed to add simple linear inequality constraints. +

+

+
//Example 2:
+// Objective function
+function f1=gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b)
+ +

Example

+Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above:

+

+
//Example 3:
+// Objective function
+function f1=gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq =  [1;2];
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq)
+ +

Example

+In this example, we proceed to add the upper and lower bounds to the objective function. +

+

+
//Example 4:
+// Objective function
+function f1=gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq =  [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1];    //
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq,lb,ub)
+ + +

Example

+Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. +

+

+
//Example 5:
+// Objective function
+function f1=gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1,-1; 2, 1];
+beq =  [1;2];
+//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
+lb = [-1;-%inf];
+ub = [%inf;1];    //
+//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
+function [c, ceq]=nlc(x)
+c=[x(1)^2-5,x(1)^2+x(2)^2-8];
+ceq=[];
+endfunction
+//Run fgoalattain
+[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nlc)
+ + +

Example

+

We can further enhance the functionality of fgoalattain by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.

+

+

+
//Example 6: Using the available options
+function f1=gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying the goal and the weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+// Defining gradient of myfun
+function G=myfungrad(x)
+G = [ 4*x(1) - 48, -2*x(1), 1, -1, 1;
+2*x(2) - 40, -6*x(2), 3, -1, 1; ]'
+endfunction
+// The nonlinear constraints and the Jacobian
+// matrix of the constraints
+function [c, ceq]=confun(x)
+// Inequality constraints
+c = [1.5 + x(1)*x(2) - x(1) - x(2), -x(1)*x(2) - 10]
+// No nonlinear equality constraints
+ceq=[]
+endfunction
+// Defining gradient of confungrad
+function [DC, DCeq]=cgrad(x)
+// DC(:,i) = gradient of the i-th constraint
+// DC = [
+//   Dc1/Dx1  Dc1/Dx2
+//   Dc2/Dx1  Dc2/Dx2
+//   ]
+DC= [
+x(2)-1, -x(2)
+x(1)-1, -x(1)
+]'
+DCeq = []'
+endfunction
+// Test with both gradient of objective and gradient of constraints
+Options = list("MaxIter", [3000], "CpuTime", [600],"GradObj",myfungrad,"GradCon",cgrad);
+// The initial guess
+
+// Run fgoalattain
+[x,fval,maxfval,exitflag,output] = fgoalattain(myfun,x0,goal,weight,[],[],[],[],[],[], confun, Options)
+ +

Example

+Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints: +

+

+
//Example 7:
+//Objective function
+function f1=gattainObjfun(x)
+f1(1)=2*x(1)*x(1)+x(2)*x(2)-48*x(1)-40*x(2)+304
+f1(2)=-x(1)*x(1)-3*x(2)*x(2)
+f1(3)=x(1)+3*x(2)-18
+f1(4)=-x(1)-x(2)
+f1(5)=x(1)+x(2)-8
+endfunction
+// The initial guess
+x0=[-1,1];
+//Specifying goals and weights
+goal=[-5,-3,-2,-1,-4];
+weight=abs(goal)
+//Linear Inequality constraints
+A=[1,1 ; 1,1/4 ; 1,-1];
+b=[2;1;1];
+//We specify the linear equality constraints below.
+Aeq = [1/3,-5; 2, 1];
+beq =  [11;8];
+// Run fminimax
+[x,fval,maxfval,exitflag,output,lambda] = fgoalattain(gattainObjfun,x0,goal,weight,A,b,Aeq,beq)
+

Authors

  • Prajwala TM, Sheetal Shalini , 2015

@@ -169,11 +356,11 @@ It has type "struct" and contains the following fields.
Report an issue
- << FOSSEE Optimization Toolbox + << cbcintlinprog - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/fminbnd.html b/help/en_US/scilab_en_US_help/fminbnd.html index d60efaa..7e71531 100644 --- a/help/en_US/scilab_en_US_help/fminbnd.html +++ b/help/en_US/scilab_en_US_help/fminbnd.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fminbnd + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fminbnd

fminbnd

@@ -44,53 +44,58 @@ [xopt,fopt,exitflag,output]=fminbnd(.....) [xopt,fopt,exitflag,output,lambda]=fminbnd(.....)
-

Parameters

+

Input Parameters

f : -

a function, representing the objective function of the problem

-
x1 : -

a vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables, where n is number of Variables

-
x2 : -

a vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where 'n' is the number of Variables. If x2 is empty it means upper bound is +infinity

+

A function, representing the objective function of the problem.

+
: +

A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is .

+
: +

A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is .

options : -

a list, containing the option for user to specify. See below for details.

-
xopt : -

a vector of doubles, containing the the computed solution of the optimization problem.

+

A list, containing the options for user to specify. See below for details.

+

Outputs

+
xopt : +

A vector of doubles, containing the computed solution of the optimization problem.

fopt : -

a scalar of double, containing the the function value at x.

+

A double, containing the the function value at x.

exitflag : -

a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

+

An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

output : -

a structure, containing the information about the optimization. See below for details.

+

A structure, containing the information about the optimization. See below for details.

lambda : -

a structure, containing the Lagrange multipliers of lower bound and upper bound at the optimized point. See below for details.

+

A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.

Description

Search the minimum of a multi-variable function on bounded interval specified by : Find the minimum of f(x) such that

-

-

The routine calls Ipopt for solving the Bounded Optimization problem, Ipopt is a library written in C++.

-

The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

  • Syntax : options= list("MaxIter", [---], "CpuTime", [---], TolX, [----]);
  • -
  • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
  • -
  • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
  • -
  • TolX : a Scalar, containing the Tolerance value that the solver should take.
  • -
  • Default Values : options = list("MaxIter", [3000], "CpuTime", [600], TolX, [1e-4]);

-

The exitflag allows to know the status of the optimization which is given back by Ipopt. -

  • exitflag=0 : Optimal Solution Found
  • -
  • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
  • -
  • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
  • -
  • exitflag=3 : Stop at Tiny Step.
  • -
  • exitflag=4 : Solved To Acceptable Level.
  • -
  • exitflag=5 : Converged to a point of local infeasibility.

-

For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

+

+

fminbnd calls Ipopt which is an optimization library written in C++, to solve the bound optimization problem.

+ +

Options

+The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

+

options= list("MaxIter", [---], "CpuTime", [---], "TolX", [---]);

+

The options should be defined as type "list" and consist of the following fields: +

  • MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.
  • +
  • CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.
  • +
  • TolX : A scalar, containing the tolerance value that the solver should take.
+The default values for the various items are given as:

+

options = list("MaxIter", [3000], "CpuTime", [600]);

+ +

The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

  • 0 : Optimal Solution Found
  • +
  • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
  • +
  • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
  • +
  • 3 : Stop at Tiny Step.
  • +
  • 4 : Solved To Acceptable Level.
  • +
  • 5 : Converged to a point of local infeasibility.

+

For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

  • output.Iterations: The number of iterations performed during the search
  • -
  • output.Cpu_Time: The total cpu-time spend during the search
  • -
  • output.Objective_Evaluation: The number of Objective Evaluations performed during the search
  • -
  • output.Dual_Infeasibility: The Dual Infeasiblity of the final soution
  • -
  • output.Message: The output message for the problem

+It is of type "struct" and contains the following fields. +
  • output.Iterations: The number of iterations performed.
  • +
  • output.Cpu_Time : The total cpu-time taken.
  • +
  • output.Objective_Evaluation: The number of Objective Evaluations performed.
  • +
  • output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.
  • +
  • output.Message: The output message for the problem.

The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields. @@ -98,10 +103,30 @@ It has type "struct" and contains the following fields.

  • lambda.upper: The Lagrange multipliers for the upper bound constraints.
  • -

    Examples

    -
    //Find x in R^6 such that it minimizes:
    -//f(x)= sin(x1) + sin(x2) + sin(x3) + sin(x4) + sin(x5) + sin(x6)
    -//-2 <= x1,x2,x3,x4,x5,x6 <= 2
    + 

    A few examples displaying the various functionalities of fminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

    +

    Example

    +

    Here we solve a simple non-linear objective function, bounded in the interval [0,1000].

    +

    Find x in R such that it minimizes:

    +

    +

    +
    Example 1: Minimizing a bound function R.
    +//Objective function to be minimised
    +function y=f(x)
    +y=1/x^2
    +endfunction
    +//Variable bounds
    +x1 = [0];
    +x2 = [1000];
    +//Calling Ipopt
    +[x,fval,exitflag,output,lambda] =fminbnd(f, x1, x2)
    + + +

    Example

    +

    Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.

    +

    Find x in R^6 such that it minimizes:

    +

    +

    +
    //Example 2: Solving an objective function in R^6.
     //Objective function to be minimised
     function y=f(x)
     y=0
    @@ -115,29 +140,13 @@ It has type "struct" and contains the following fields.
     //Options
     options=list("MaxIter",[1500],"CpuTime", [100],"TolX",[1e-6])
     //Calling Ipopt
    -[x,fval] =fminbnd(f, x1, x2, options)
    -// Press ENTER to continue
    +[x,fval] =fminbnd(f, x1, x2, options)
    -

    Examples

    -
    //Find x in R such that it minimizes:
    -//f(x)= 1/x^2
    -//0 <= x <= 1000
    -//Objective function to be minimised
    -function y=f(x)
    -y=1/x^2
    -endfunction
    -//Variable bounds
    -x1 = [0];
    -x2 = [1000];
    -//Calling Ipopt
    -[x,fval,exitflag,output,lambda] =fminbnd(f, x1, x2)
    -// Press ENTER to continue
    - -

    Examples

    -
    //The below problem is an unbounded problem:
    -//Find x in R^2 such that it minimizes:
    -//f(x)= -[(x1-1)^2 + (x2-1)^2]
    -//-inf <= x1,x2 <= inf
    +

    Example

    +

    Unbounded Problems: Find x in R^2 such that it minimizes:

    +

    +

    +
    //Example 3: Unbounded objective function.
     //Objective function to be minimised
     function y=f(x)
     y=-((x(1)-1)^2+(x(2)-1)^2);
    @@ -163,7 +172,7 @@ It has type "struct" and contains the following fields.
     
           
    - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/fmincon.html b/help/en_US/scilab_en_US_help/fmincon.html index 5dc1d2b..c36f58f 100644 --- a/help/en_US/scilab_en_US_help/fmincon.html +++ b/help/en_US/scilab_en_US_help/fmincon.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,11 +29,11 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fmincon + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fmincon

    fmincon

    -

    Solves a multi-variable constrainted optimization problem

    +

    Solves a multi-variable constrainted optimization problem.

    Calling Sequence

    @@ -49,73 +49,75 @@ [xopt,fopt,exitflag,output,lambda,gradient]=fmincon(.....) [xopt,fopt,exitflag,output,lambda,gradient,hessian]=fmincon(.....)
    -

    Parameters

    +

    Input Parameters

    f : -

    a function, representing the objective function of the problem

    +

    A function, representing the objective function of the problem.

    x0 : -

    a vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables

    +

    A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

    A : -

    a matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints

    +

    A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

    b : -

    a vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1)

    +

    A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

    Aeq : -

    a matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints

    +

    A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

    beq : -

    a vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1)

    +

    A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

    lb : -

    a vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables

    +

    A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

    ub : -

    a vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of Variables

    +

    A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

    nlc : -

    a function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints are defined first as a single row vector (c), followed by non-linear equality constraints as another single row vector (ceq). Refer Example for definition of Constraint function.

    +

    A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.

    options : -

    a list, containing the option for user to specify. See below for details.

    -
    xopt : -

    a vector of doubles, cointating the computed solution of the optimization problem

    +

    A list, containing the option for user to specify. See below for details.

    +

    Outputs

    +
    xopt : +

    A vector of doubles, containing the computed solution of the optimization problem.

    fopt : -

    a scalar of double, containing the the function value at x

    +

    A double, containing the value of the function at x.

    exitflag : -

    a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

    +

    An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

    output : -

    a structure, containing the information about the optimization. See below for details.

    +

    A structure, containing the information about the optimization. See below for details.

    lambda : -

    a structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.

    +

    A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.

    gradient : -

    a vector of doubles, containing the Objective's gradient of the solution.

    +

    A vector of doubles, containing the objective's gradient of the solution.

    hessian : -

    a matrix of doubles, containing the Lagrangian's hessian of the solution.

    +

    A matrix of doubles, containing the Lagrangian's hessian of the solution.

    Description

    -

    Search the minimum of a constrained optimization problem specified by : -Find the minimum of f(x) such that

    -

    -

    The routine calls Ipopt for solving the Constrained Optimization problem, Ipopt is a library written in C++.

    -

    The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

    • Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);
    • -
    • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
    • -
    • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
    • -
    • GradObj : a function, representing the gradient function of the Objective in Vector Form.
    • -
    • Hessian : a function, representing the hessian function of the Lagrange in Symmetric Matrix Form with Input parameters x, Objective factor and Lambda. Refer Example for definition of Lagrangian Hessian function.
    • -
    • GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 & m3 are number of non-linear inequality and equality constraints respectively.
    • -
    • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

    -

    The exitflag allows to know the status of the optimization which is given back by Ipopt. -

    • exitflag=0 : Optimal Solution Found
    • -
    • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
    • -
    • exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
    • -
    • exitflag=3 : Stop at Tiny Step.
    • -
    • exitflag=4 : Solved To Acceptable Level.
    • -
    • exitflag=5 : Converged to a point of local infeasibility.

    -

    For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

    -

    The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

    • output.Iterations: The number of iterations performed during the search
    • -
    • output.Cpu_Time: The total cpu-time spend during the search
    • -
    • output.Objective_Evaluation: The number of Objective Evaluations performed during the search
    • -
    • output.Dual_Infeasibility: The Dual Infeasiblity of the final soution
    • -
    • output.Message: The output message for the problem

    -

    The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

    Search the minimum of a constrained optimization problem specified by:

    +

    Find the minimum of f(x) such that

    +

    +

    fmincon calls Ipopt, an optimization library written in C++, to solve the Constrained Optimization problem.

    +

    Options

    +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

    +

    options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);

    +

    The options should be defined as type "list" and consist of the following fields: +

    • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
    • +
    • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.
    • +
    • GradObj : A function, representing the gradient function of the Objective in vector form.
    • +
    • Hessian : A function, representing the hessian function of the Lagrange in the form of a Symmetric Matrix with Input parameters as x, Objective factor and Lambda. Refer to Example 5 for definition of Lagrangian Hessian function.
    • +
    • GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.
    +The default values for the various items are given as:

    +

    options = list("MaxIter", [3000], "CpuTime", [600]);

    +

    The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

    • 0 : Optimal Solution Found
    • +
    • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
    • +
    • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
    • +
    • 3 : Stop at Tiny Step.
    • +
    • 4 : Solved To Acceptable Level.
    • +
    • 5 : Converged to a point of local infeasibility.

    +

    For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

    +

    The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

    • output.Iterations: The number of iterations performed.
    • +
    • output.Cpu_Time : The total cpu-time taken.
    • +
    • output.Objective_Evaluation: The number of Objective Evaluations performed.
    • +
    • output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.
    • +
    • output.Message: The output message for the problem.

    +

    The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

    • lambda.lower: The Lagrange multipliers for the lower bound constraints.
    • lambda.upper: The Lagrange multipliers for the upper bound constraints.
    • @@ -123,52 +125,99 @@ It has type "struct" and contains the following fields.
    • lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.
    • lambda.eqnonlin: The Lagrange multipliers for the non-linear equality constraints.
    • lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.

    -

    +

    A few examples displaying the various functionalities of fmincon have been provided below. You will find a series problems and the appropriate code snippets to solve them.

    -

    Examples

    -
    //Find x in R^2 such that it minimizes:
    -//f(x)= -x1 -x2/3
    -//x0=[0,0]
    -//constraint-1 (c1): x1 + x2 <= 2
    -//constraint-2 (c2): x1 + x2/4 <= 1
    -//constraint-3 (c3): x1 - x2 <= 2
    -//constraint-4 (c4): -x1/4 - x2 <= 1
    -//constraint-5 (c5): -x1 - x2 <= -1
    -//constraint-6 (c6): -x1 + x2 <= 2
    -//constraint-7 (c7): x1 + x2 = 2
    +

    Example

    +

    Here we solve a simple non-linear objective function, subjected to three linear inequality constraints.

    +

    Find x in R^2 such that it minimizes:

    +

    +

    +
    //Example 1:
     //Objective function to be minimised
     function y=f(x)
    -y=-x(1)-x(2)/3;
    +y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
     endfunction
    -//Starting point, linear constraints and variable bounds
    +//Starting point, and linear constraints. Since we haven't added any eqaulity constraints or variable bounds, we need not specify them.
     x0=[0 , 0];
    -A=[1,1 ; 1,1/4 ; 1,-1 ; -1/4,-1 ; -1,-1 ; -1,1];
    -b=[2;1;2;1;-1;2];
    -Aeq=[1,1];
    -beq=[2];
    -lb=[];
    -ub=[];
    -nlc=[];
    -//Gradient of objective function
    -function y=fGrad(x)
    -y= [-1,-1/3];
    +A=[1,1 ; 1,1/4 ; 1,-1];
    +b=[2;1;1];
    +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b)
    + +

    Example

    +

    Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above:

    +

    +

    +
    //Example 2:
    +//Objective function to be minimised
    +function y=f(x)
    +y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
     endfunction
    -//Hessian of lagrangian
    -function y=lHess(x, obj, lambda)
    -y= obj*[0,0;0,0]
    +//Starting point, and linear constraints.
    +x0=[0 , 0];
    +A=[1,1 ; 1,1/4 ; -1,1];
    +b=[2;1;2];
    +//We specify the linear equality constraints below.
    +Aeq = [1,-1; 2, 1];
    +beq =  [1;2];
    +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq);
    + +

    Example

    +

    In this example, we proceed to add the upper and lower bounds to the objective function.

    +

    +

    +
    //Example 3:
    +//Objective function to be minimised
    +function y=f(x)
    +y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
     endfunction
    -//Options
    -options=list("GradObj", fGrad, "Hessian", lHess);
    -//Calling Ipopt
    -[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc,options)
    -// Press ENTER to continue
    +//Starting point, and linear constraints. +x0=[0 , 0]; +A=[1,1 ; 1,1/4 ; -1,1]; +b=[2;1;2]; +//We specify the linear equality constraints below. +Aeq = [1,-1; 2, 1]; +beq = [1;2]; +//The upper and lower bounds for the objective function are defined in simple vectors as shown below. +lb = [-1;-%inf]; +ub = [%inf;1]; // +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub); +//Press ENTER to continue
    -

    Examples

    -
    //Find x in R^3 such that it minimizes:
    -//f(x)= x1*x2 + x2*x3
    -//x0=[0.1 , 0.1 , 0.1]
    -//constraint-1 (c1): x1^2 - x2^2 + x3^2 <= 2
    -//constraint-2 (c2): x1^2 + x2^2 + x3^2 <= 10
    +

    Example

    +

    Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.

    +

    +

    +
    //Example 4:
    +//Objective function to be minimised
    +function y=f(x)
    +y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
    +endfunction
    +//Starting point, and linear constraints.
    +x0=[0 , 0];
    +A=[1,1 ; 1,1/4 ; -1,1];
    +b=[2;1;2];
    +//We specify the linear equality constraints below.
    +Aeq = [1,-1; 2, 1];
    +beq =  [1;2];
    +//The upper and lower bound for the objective function are specified below.
    +lb = [-1;-%inf];
    +ub = [%inf;1];
    +//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
    +function [c, ceq]=nlc(x)
    +c=[x(1)^2-1,x(1)^2+x(2)^2-1];
    +ceq=[];
    +endfunction
    +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc);
    +//Press ENTER to continue
    + +

    Example

    +

    Additional Functionality:

    +

    We can further enhance the functionality of fmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options.

    + +

    +

    +
    //Example 5:
     //Objective function to be minimised
     function y=f(x)
     y=x(1)*x(2)+x(2)*x(3);
    @@ -190,7 +239,7 @@ It has type "struct" and contains the following fields.
     function y=fGrad(x)
     y= [x(2),x(1)+x(3),x(2)];
     endfunction
    -//Hessian of the Lagrange Function
    +//Hessian of the Lagrange Function, which has been pre-defined to improve solver speed.
     function y=lHess(x, obj, lambda)
     y= obj*[0,1,0;1,0,1;0,1,0] + lambda(1)*[2,0,0;0,-2,0;0,0,2] + lambda(2)*[2,0,0;0,2,0;0,0,2]
     endfunction
    @@ -203,84 +252,38 @@ It has type "struct" and contains the following fields.
     options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", lHess,"GradCon", cGrad);
     //Calling Ipopt
     [x,fval,exitflag,output] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc,options)
    -// Press ENTER to continue
    +//Press ENTER to continue
    -

    Examples

    -
    //The below problem is an unbounded problem:
    -//Find x in R^3 such that it minimizes:
    -//f(x)= -(x1^2 + x2^2 + x3^2)
    -//x0=[0.1 , 0.1 , 0.1]
    -//  x1 <= 0
    -//  x2 <= 0
    -//  x3 <= 0
    -//Objective function to be minimised
    +

    Example

    + +

    Infeasible Problems: Find x in R^2 such that it minimizes:

    +

    +

    +
    //Example 6:
    +//Infeasible objective function.
     function y=f(x)
    -y=-(x(1)^2+x(2)^2+x(3)^2);
    +y=x(1)^2 - x(1)*x(2)/3 + x(2)^2;
     endfunction
    -//Starting point, linear constraints and variable bounds
    -x0=[0.1 , 0.1 , 0.1];
    -A=[];
    -b=[];
    -Aeq=[];
    -beq=[];
    -lb=[];
    -ub=[0,0,0];
    -//Options
    -options=list("MaxIter", [1500], "CpuTime", [500]);
    -//Calling Ipopt
    -[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,[],options)
    -// Press ENTER to continue
    +x0=[0 , 0]; +A=[1,1 ; 1,1/4 ; 1,-1]; +b=[2;1;1]; +Aeq = [1,1]; +beq = 3; +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq)
    -

    Examples

    -
    //The below problem is an infeasible problem:
    -//Find x in R^3 such that in minimizes:
    -//f(x)=x1*x2 + x2*x3
    -//x0=[1,1,1]
    -//constraint-1 (c1): x1^2 <= 1
    -//constraint-2 (c2): x1^2 + x2^2 <= 1
    -//constraint-3 (c3): x3^2 <= 1
    -//constraint-4 (c4): x1^3 = 0.5
    -//constraint-5 (c5): x2^2 + x3^2 = 0.75
    -// 0 <= x1 <=0.6
    -// 0.2 <= x2 <= inf
    -// -inf <= x3 <= 1
    -//Objective function to be minimised
    +

    Example

    +

    Unbounded Problems: Find x in R^2 such that it minimizes:

    +

    +

    +
    //Example 7: Unbounded objective function.
     function y=f(x)
    -y=x(1)*x(2)+x(2)*x(3);
    -endfunction
    -//Starting point, linear constraints and variable bounds
    -x0=[1,1,1];
    -A=[];
    -b=[];
    -Aeq=[];
    -beq=[];
    -lb=[0 0.2,-%inf];
    -ub=[0.6 %inf,1];
    -//Nonlinear constraints
    -function [c, ceq]=nlc(x)
    -c=[x(1)^2-1,x(1)^2+x(2)^2-1,x(3)^2-1];
    -ceq=[x(1)^3-0.5,x(2)^2+x(3)^2-0.75];
    -endfunction
    -//Gradient of objective function
    -function y=fGrad(x)
    -y= [x(2),x(1)+x(3),x(2)];
    -endfunction
    -//Hessian of the Lagrange Function
    -function y=lHess(x, obj, lambda)
    -y= obj*[0,1,0;1,0,1;0,1,0] + lambda(1)*[2,0,0;0,0,0;0,0,0] + ..
    -lambda(2)*[2,0,0;0,2,0;0,0,0] +lambda(3)*[0,0,0;0,0,0;0,0,2] + ..
    -lambda(4)*[6*x(1),0,0;0,0,0;0,0,0] + lambda(5)*[0,0,0;0,2,0;0,0,2];
    +y=-(x(1)^2 - x(1)*x(2)/3 + x(2)^2);
     endfunction
    -//Gradient of Non-Linear Constraints
    -function [cg, ceqg]=cGrad(x)
    -cg = [2*x(1),0,0;2*x(1),2*x(2),0;0,0,2*x(3)];
    -ceqg = [3*x(1)^2,0,0;0,2*x(2),2*x(3)];
    -endfunction
    -//Options
    -options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", lHess,"GradCon", cGrad);
    -//Calling Ipopt
    -[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b,Aeq,beq,lb,ub,nlc,options)
    -// Press ENTER to continue
    +x0=[0 , 0]; +A=[-1,-1 ; 1,1]; +b=[-2;1]; +[x,fval,exitflag,output,lambda,grad,hessian] =fmincon(f, x0,A,b);
    +

    Authors

    • R.Vidyadhar , Vignesh Kannan
    @@ -295,7 +298,7 @@ It has type "struct" and contains the following fields.
    - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/fminimax.html b/help/en_US/scilab_en_US_help/fminimax.html index 22b6ad9..2aa5c38 100644 --- a/help/en_US/scilab_en_US_help/fminimax.html +++ b/help/en_US/scilab_en_US_help/fminimax.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fminimax + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fminimax

    fminimax

    @@ -49,64 +49,72 @@ [xopt, fval, maxfval, exitflag, output]= fminimax(.....) [xopt, fval, maxfval, exitflag, output, lambda]= fminimax(.....)
    -

    Parameters

    +

    Input Parameters

    fun: -

    The function to be minimized. fun is a function that accepts a vector x and returns a vector F, the objective functions evaluated at x.

    +

    The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x.

    x0 : -

    a vector of double, contains initial guess of variables.

    +

    A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.

    A : -

    a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

    +

    A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

    b : -

    a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

    +

    A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

    Aeq : -

    a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

    +

    A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

    beq : -

    a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

    +

    A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

    lb : -

    a vector of double, contains lower bounds of the variables.

    +

    A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

    ub : -

    a vector of double, contains upper bounds of the variables.

    +

    A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

    nonlinfun: -

    function that computes the nonlinear inequality constraints c⋅x ≤ 0 and nonlinear equality constraints c⋅x = 0.

    -
    xopt : -

    a vector of double, the computed solution of the optimization problem.

    -
    fopt : -

    a double, the value of the function at x.

    +

    A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.

    +
    options : +

    A list, containing the option for user to specify. See below for details.

    +

    Outputs

    +
    xopt : +

    A vector of doubles, containing the computed solution of the optimization problem.

    +
    fval : +

    A vector of doubles, containing the values of the objective functions at the end of the optimization problem.

    maxfval: -

    a 1x1 matrix of doubles, the maximum value in vector fval

    +

    A double, representing the maximum value in the vector fval.

    exitflag : -

    The exit status. See below for details.

    +

    An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

    output : -

    The structure consist of statistics about the optimization. See below for details.

    +

    A structure, containing the information about the optimization. See below for details.

    lambda : -

    The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

    +

    A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.

    Description

    -

    fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem.

    -

    -

    Currently, fminimax calls fmincon which uses the ip-opt algorithm.

    +

    fminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate, a problem generally referred to as the minimax problem.

    +

    +

    Currently, fminimax calls fmincon which uses the Ipopt solver.

    max-min problems can also be solved with fminimax, using the identity

    -

    The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

    • Syntax : options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---);
    • -
    • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
    • -
    • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
    • -
    • GradObj : a function, representing the gradient function of the Objective in Vector Form.
    • -
    • GradCon : a function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate Matrix (ceqg of size m2 X n or as an empty) where m2 & m3 are number of non-linear inequality and equality constraints respectively.
    • -
    • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

    -

    The objective function must have header : + +

    Options

    +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

    +

    options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "GradCon", ---);

    +

    • MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take.
    • +
    • CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take.
    • +
    • GradObj : A function, representing the gradient function of the Objective in Vector Form.
    • +
    • GradCon : A function, representing the gradient of the Non-Linear Constraints (both Equality and Inequality) of the problem. It is declared in such a way that gradient of non-linear inequality constraints are defined first as a separate Matrix (cg of size m2 X n or as an empty), followed by gradient of non-linear equality constraints as a separate matrix (ceqg of size m2 X n or as an empty) where m2 &amp; m3 are number of non-linear inequality and equality constraints respectively.
    • +
    • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);
    +The default values for the various items are given as:

    +

    options = list("MaxIter", [3000], "CpuTime", [600]);

    +

    The objective function must have a header :

    F = fun(x)
    where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m is the total number of objective functions inside F. On input, the variable x contains the current point and, on output, the variable F must contain the objective function values.

    -

    By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradConstr option is on, fminimax approximates minmaxObjfun gradient using numderivative toolbox.

    -

    If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.

    -

    Furthermore, we must enable the "GradObj" option with the statement : +

    By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, fminimax approximates minmaxObjfun gradient using the numderivative toolbox.

    +

    Syntax

    +

    Some syntactic details about fminimax, including the syntax for the gradient, defining the non-linear constraints, and the constraint derivative function have been provided below:

    +

    If the user can provide exact gradients, it should be done, since it improves the convergence speed of the optimization algorithm.

    +

    Furthermore, we can enable the "GradObj" option with the statement :

    minimaxOptions = list("GradObj",fGrad);
    This will let fminimax know that the exact gradient of the objective function is known, so that it can change the calling sequence to the objective function. Note that, fGrad should be mentioned in the form of N x n where n is the number of variables, N is the number of functions in objective function.

    -

    The constraint function must have header : +

    The constraint function must have header:

    [c, ceq] = confun(x)
    -where x is a n x 1 matrix of dominmaxUbles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints). +Where x is a n x 1 matrix of minimax doubles, c is a 1 x nni matrix of doubles and ceq is a 1 x nne matrix of doubles (nni : number of nonlinear inequality constraints, nne : number of nonlinear equality constraints). On input, the variable x contains the current point and, on output, the variable c must contain the nonlinear inequality constraints and ceq must contain the nonlinear equality constraints.

    By default, the gradient options for fminimax are turned off and and fmincon does the gradient opproximation of confun. In case the GradObj option is on and GradCons option is off, fminimax approximates confun gradient using numderivative toolbox.

    If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.

    @@ -116,35 +124,55 @@ This will let fminimax know that the exact gradient of the objective function is

    The constraint derivative function must have header :

    [dc,dceq] = confungrad(x)
    where dc is a nni x n matrix of doubles and dceq is a nne x n matrix of doubles.

    -

    The exitflag allows to know the status of the optimization which is given back by Ipopt. -

    • exitflag=0 : Optimal Solution Found
    • -
    • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
    • -
    • exitflag=2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
    • -
    • exitflag=3 : Stop at Tiny Step.
    • -
    • exitflag=4 : Solved To Acceptable Level.
    • -
    • exitflag=5 : Converged to a point of local infeasibility.

    -

    For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

    -

    The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

    • output.Iterations: The number of iterations performed during the search
    • -
    • output.Cpu_Time: The total cpu-time spend during the search
    • -
    • output.Objective_Evaluation: The number of Objective Evaluations performed during the search
    • -
    • output.Dual_Infeasibility: The Dual Infeasiblity of the final soution

    -

    The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

    The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

    • 0 : Optimal Solution Found
    • +
    • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
    • +
    • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
    • +
    • 3 : Stop at Tiny Step.
    • +
    • 4 : Solved To Acceptable Level.
    • +
    • 5 : Converged to a point of local infeasibility.

    +

    For more details on exitflag, see the ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

    +

    The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

    • output.Iterations: The number of iterations performed.
    • +
    • output.Cpu_Time : The total cpu-time taken.
    • +
    • output.Objective_Evaluation: The number of Objective Evaluations performed.
    • +
    • output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.
    • +
    • output.Message: The output message for the problem.

    +

    The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

    • lambda.lower: The Lagrange multipliers for the lower bound constraints.
    • lambda.upper: The Lagrange multipliers for the upper bound constraints.
    • lambda.eqlin: The Lagrange multipliers for the linear equality constraints.
    • lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.
    • lambda.eqnonlin: The Lagrange multipliers for the non-linear equality constraints.
    • -
    • lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.

    -

    +
  • lambda.ineqnonlin: The Lagrange multipliers for the non-linear inequality constraints.
  • +

    A few examples displaying the various functionalities of fminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

    +

    Example

    + Here we solve a simple objective function, subjected to no constraints. +

    +

    +
    //Example 1:
    +// Objective function
    +function f=myfun(x)
    +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
    +f(2)= -x(1)^2 - 3*x(2)^2;
    +f(3)= x(1) + 3*x(2) -18;
    +f(4)= -x(1) - x(2);
    +f(5)= x(1) + x(2) - 8;
    +endfunction
    +// The initial guess
    +x0 = [0.1,0.1];
    +// Run fminimax
    +[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0)
    + +

    Example

    + We proceed to add simple linear inequality constraints. -

    Examples

    -
    // A basic case :
    -// we provide only the objective function and the nonlinear constraint
    -// function
    +

    +

    +
    //Example 2:
    +//Objective function
     function f=myfun(x)
     f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
     f(2)= -x(1)^2 - 3*x(2)^2;
    @@ -154,18 +182,102 @@ It has type "struct" and contains the following fields.
     endfunction
     // The initial guess
     x0 = [0.1,0.1];
    -// The expected solution : only 4 digits are guaranteed
    -xopt = [4 4]
    -fopt = [0 -64 -2 -8 0]
    -maxfopt = 0
    +//Linear Inequality constraints
    +A=[1,1 ; 1,1/4 ; 1,-1];
    +b=[2;1;1];
    +// Run fminimax
    +[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b)
    + +

    Example

    +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: +

    +

    +
    //Example 3:
    +//Objective function
    +function f=myfun(x)
    +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
    +f(2)= -x(1)^2 - 3*x(2)^2;
    +f(3)= x(1) + 3*x(2) -18;
    +f(4)= -x(1) - x(2);
    +f(5)= x(1) + x(2) - 8;
    +endfunction
    +// The initial guess
    +x0 = [0.1,0.1];
    +//Linear Inequality constraints
    +A=[1,1 ; 1,1/4 ; 1,-1];
    +b=[2;1;1];
    +//We specify the linear equality constraints below.
    +Aeq = [1,-1; 2, 1];
    +beq =  [1;2];
    +// Run fminimax
    +[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq)
    + +

    Example

    +In this example, we proceed to add the upper and lower bounds to the objective function. +

    +

    +
    //Example 4:
    +//Objective function
    +function f=myfun(x)
    +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
    +f(2)= -x(1)^2 - 3*x(2)^2;
    +f(3)= x(1) + 3*x(2) -18;
    +f(4)= -x(1) - x(2);
    +f(5)= x(1) + x(2) - 8;
    +endfunction
    +// The initial guess
    +x0 = [0.1,0.1];
    +//Linear Inequality constraints
    +A=[1,1 ; 1,1/4 ; 1,-1];
    +b=[2;1;1];
    +//We specify the linear equality constraints below.
    +Aeq = [1,-1; 2, 1];
    +beq =  [1;2];
    +//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
    +lb = [-1;-%inf];
    +ub = [%inf;1];    //
     // Run fminimax
    -[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0)
    -// Press ENTER to continue
    +[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq,lb,ub)
    -

    Examples

    -
    // A case where we provide the gradient of the objective
    -// functions and the Jacobian matrix of the constraints.
    -// The objective function and its gradient
    +
    +

    Example

    +Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. +

    +

    +
    //Example 5:
    +//Objective function
    +function f=myfun(x)
    +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
    +f(2)= -x(1)^2 - 3*x(2)^2;
    +f(3)= x(1) + 3*x(2) -18;
    +f(4)= -x(1) - x(2);
    +f(5)= x(1) + x(2) - 8;
    +endfunction
    +// The initial guess
    +x0 = [0.1,0.1];
    +//Linear Inequality constraints
    +A=[1,1 ; 1,1/4 ; 1,-1];
    +b=[2;1;1];
    +//We specify the linear equality constraints below.
    +Aeq = [1,-1; 2, 1];
    +beq =  [1;2];
    +//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
    +lb = [-1;-%inf];
    +ub = [%inf;1];    //
    +//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
    +function [c, ceq]=nlc(x)
    +c=[x(1)^2-1,x(1)^2+x(2)^2-1];
    +ceq=[];
    +endfunction
    +// Run fminimax
    +[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq,lb,ub)
    + +

    Example

    +

    We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.

    +

    +

    +
    //Example 6: Using the available options
     function f=myfun(x)
     f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;
     f(2)= -x(1)^2 - 3*x(2)^2;
    @@ -173,6 +285,7 @@ It has type "struct" and contains the following fields.
     f(4)= -x(1) - x(2);
     f(5)= x(1) + x(2) - 8;
     endfunction
    +
     // Defining gradient of myfun
     function G=myfungrad(x)
     G = [ 4*x(1) - 48, -2*x(1), 1, -1, 1;
    @@ -200,7 +313,7 @@ It has type "struct" and contains the following fields.
     DCeq = []'
     endfunction
     // Test with both gradient of objective and gradient of constraints
    -minimaxOptions = list("GradObj",myfungrad,"GradCon",cgrad);
    +minimaxOptions = list("MaxIter", [3000], "CpuTime", [600],"GradObj",myfungrad,"GradCon",cgrad);
     // The initial guess
     x0 = [0,10];
     // The expected solution : only 4 digits are guaranteed
    @@ -210,6 +323,30 @@ It has type "struct" and contains the following fields.
     // Run fminimax
     [x,fval,maxfval,exitflag,output] = fminimax(myfun,x0,[],[],[],[],[],[], confun, minimaxOptions)
    +

    Example

    +Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints: +

    +

    +
    //Example 7:
    +//Objective function
    +function f=myfun(x)
    +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
    +f(2)= -x(1)^2 - 3*x(2)^2;
    +f(3)= x(1) + 3*x(2) -18;
    +f(4)= -x(1) - x(2);
    +f(5)= x(1) + x(2) - 8;
    +endfunction
    +// The initial guess
    +x0 = [0.1,0.1];
    +//Linear Inequality constraints
    +A=[1,1 ; 1,1/4 ; 1,-1];
    +b=[2;1;1];
    +//We specify the linear equality constraints below.
    +Aeq = [1/3,-5; 2, 1];
    +beq =  [11;8];
    +// Run fminimax
    +[x,fval,maxfval,exitflag,output,lambda] = fminimax(myfun, x0,A,b,Aeq,beq)
    +

    Authors

    • Animesh Baranawal

    @@ -223,7 +360,7 @@ It has type "struct" and contains the following fields.
    - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/fminunc.html b/help/en_US/scilab_en_US_help/fminunc.html index d5f0786..b2e9059 100644 --- a/help/en_US/scilab_en_US_help/fminunc.html +++ b/help/en_US/scilab_en_US_help/fminunc.html @@ -16,11 +16,11 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox - linprog >> + intfminbnd >>
    @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fminunc + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > fminunc

    fminunc

    @@ -45,59 +45,81 @@ [xopt,fopt,exitflag,output,gradient]=fminunc(.....) [xopt,fopt,exitflag,output,gradient,hessian]=fminunc(.....)
    -

    Parameters

    +

    Input Parameters

    f : -

    a function, representing the objective function of the problem

    +

    A function, representing the objective function of the problem.

    x0 : -

    a vector of doubles, containing the starting of variables.

    -
    options: -

    a list, containing the option for user to specify. See below for details.

    -
    xopt : -

    a vector of doubles, the computed solution of the optimization problem.

    +

    A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.

    +
    options : +

    A list, containing the options for user to specify. See below for details.

    +

    Outputs

    +
    xopt : +

    A vector of doubles, containing the computed solution of the optimization problem.

    fopt : -

    a scalar of double, the function value at x.

    +

    A double, containing the the function value at x.

    exitflag : -

    a scalar of integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

    -
    output : -

    a structure, containing the information about the optimization. See below for details.

    +

    An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

    +
    output : +

    A structure, containing the information about the optimization. See below for details.

    gradient : -

    a vector of doubles, containing the the gradient of the solution.

    +

    A vector of doubles, containing the objective's gradient of the solution.

    hessian : -

    a matrix of doubles, containing the the hessian of the solution.

    +

    A matrix of doubles, containing the lagrangian's hessian of the solution.

    Description

    -

    Search the minimum of an unconstrained optimization problem specified by : -Find the minimum of f(x) such that

    +

    Search the minimum of an unconstrained optimization problem specified by :

    +

    Find the minimum of f(x) such that

    -

    The routine calls Ipopt for solving the Un-constrained Optimization problem, Ipopt is a library written in C++.

    -

    The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

    • Syntax : options= list("MaxIter", [---], "CpuTime", [---], "Gradient", ---, "Hessian", ---);
    • -
    • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
    • -
    • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
    • -
    • Gradient : a function, representing the gradient function of the Objective in Vector Form.
    • -
    • Hessian : a function, representing the hessian function of the Objective in Symmetric Matrix Form.
    • -
    • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

    -

    The exitflag allows to know the status of the optimization which is given back by Ipopt. -

    • exitflag=0 : Optimal Solution Found
    • -
    • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
    • -
    • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
    • -
    • exitflag=3 : Stop at Tiny Step.
    • -
    • exitflag=4 : Solved To Acceptable Level.
    • -
    • exitflag=5 : Converged to a point of local infeasibility.

    -

    For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

    -

    The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

    • output.Iterations: The number of iterations performed during the search
    • -
    • output.Cpu_Time: The total cpu-time spend during the search
    • -
    • output.Objective_Evaluation: The number of Objective Evaluations performed during the search
    • -
    • output.Dual_Infeasibility: The Dual Infeasiblity of the final soution
    • -
    • output.Message: The output message for the problem

    +

    Fminunc calls Ipopt which is an optimization library written in C++, to solve the unconstrained optimization problem.

    +

    Options

    +The options allow the user to set various parameters of the optimization problem. The syntax for the options is given by:

    +

    options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);

    +

    • MaxIter : A Scalar, specifying the Maximum Number of Iterations that the solver should take.
    • +
    • CpuTime : A Scalar, specifying the Maximum amount of CPU Time in seconds that the solver should take.
    • +
    • Gradient: A function, representing the gradient function of the objective in Vector Form.
    • +
    • Hessian : A function, representing the hessian function of the lagrange in the form of a Symmetric Matrix with input parameters as x, objective factor and lambda. Refer to Example 5 for definition of lagrangian hessian function.
    +The default values for the various items are given as:

    +

    options = list("MaxIter", [3000], "CpuTime", [600]);

    +

    The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

    • 0 : Optimal Solution Found
    • +
    • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
    • +
    • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
    • +
    • 3 : Stop at Tiny Step.
    • +
    • 4 : Solved To Acceptable Level.
    • +
    • 5 : Converged to a point of local infeasibility.

    +

    For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

    +

    The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

    • output.Iterations: The number of iterations performed.
    • +
    • output.Cpu_Time : The total cpu-time taken.
    • +
    • output.Objective_Evaluation: The number of objective evaluations performed.
    • +
    • output.Dual_Infeasibility : The Dual Infeasiblity of the final soution.
    • +
    • output.Message: The output message for the problem.

    -

    Examples

    -
    //Find x in R^2 such that it minimizes the Rosenbrock function
    -//f = 100*(x2 - x1^2)^2 + (1-x1)^2
    +   

    A few examples displaying the various functionalities of fminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

    + +

    Example

    +

    We begin with the minimization of a simple non-linear function.

    +

    Find x in R^2 such that it minimizes:

    +

    +

    +
    //Example 1: Simple non-linear function.
    +//Objective function to be minimised
    +function y=f(x)
    +y= x(1)^2 + x(2)^2;
    +endfunction
    +//Starting point
    +x0=[2,1];
    +//Calling Ipopt
    +[xopt,fopt]=fminunc(f,x0)
    +// Press ENTER to continue
    + +

    Example

    +

    We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of fminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.

    +

    +

    +
    //Example 2: The Rosenbrock function.
     //Objective function to be minimised
     function y=f(x)
     y= 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
    @@ -113,28 +135,16 @@ It has type "struct" and contains the following fields.
     y= [1200*x(1)^2- 400*x(2) + 2, -400*x(1);-400*x(1), 200 ];
     endfunction
     //Options
    -options=list("MaxIter", [1500], "CpuTime", [500], "Gradient", fGrad, "Hessian", fHess);
    +options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", fHess);
     //Calling Ipopt
     [xopt,fopt,exitflag,output,gradient,hessian]=fminunc(f,x0,options)
     // Press ENTER to continue
    -

    Examples

    -
    //Find x in R^2 such that the below function is minimum
    -//f = x1^2 + x2^2
    -//Objective function to be minimised
    -function y=f(x)
    -y= x(1)^2 + x(2)^2;
    -endfunction
    -//Starting point
    -x0=[2,1];
    -//Calling Ipopt
    -[xopt,fopt]=fminunc(f,x0)
    -// Press ENTER to continue
    - -

    Examples

    -
    //The below problem is an unbounded problem:
    -//Find x in R^2 such that the below function is minimum
    -//f = - x1^2 - x2^2
    +

    Example

    +

    Unbounded Problems: Find x in R^2 such that it minimizes:

    +

    +

    +
    //Example 3: Unbounded objective function.
     //Objective function to be minimised
     function y=f(x)
     y= -x(1)^2 - x(2)^2;
    @@ -150,7 +160,7 @@ It has type "struct" and contains the following fields.
     y= [-2,0;0,-2];
     endfunction
     //Options
    -options=list("MaxIter", [1500], "CpuTime", [500], "Gradient", fGrad, "Hessian", fHess);
    +options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", fGrad, "Hessian", fHess);
     //Calling Ipopt
     [xopt,fopt,exitflag,output,gradient,hessian]=fminunc(f,x0,options)
    @@ -167,11 +177,11 @@ It has type "struct" and contains the following fields.
    - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox - linprog >> + intfminbnd >>
    diff --git a/help/en_US/scilab_en_US_help/index.html b/help/en_US/scilab_en_US_help/index.html index 59a4ed9..a12788e 100644 --- a/help/en_US/scilab_en_US_help/index.html +++ b/help/en_US/scilab_en_US_help/index.html @@ -31,8 +31,14 @@

    FOSSEE Optimization Toolbox

      -
    • FOSSEE Optimization Toolbox -
      • fgoalattainSolves a multiobjective goal attainment problem
      • +
      • FOSSEE Optimization Toolbox +
        • cbcintlinprogSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
        • + + + + + +
        • fgoalattainSolves a multiobjective goal attainment problem
        • @@ -44,7 +50,7 @@ -
        • fminconSolves a multi-variable constrainted optimization problem
        • +
        • fminconSolves a multi-variable constrainted optimization problem.
        • @@ -62,6 +68,36 @@ +
        • intfminbndSolves a multi-variable optimization problem on a bounded interval
        • + + + + + +
        • intfminconSolves a constrainted multi-variable mixed integer non linear programming problem
        • + + + + + +
        • intfminimaxSolves minimax constraint problem
        • + + + + + +
        • intfminuncSolves an unconstrainted multi-variable mixed integer non linear programming optimization problem
        • + + + + + +
        • intqpipoptSolves a linear quadratic problem.
        • + + + + +
        • linprogSolves a linear programming problem.
        • @@ -106,7 +142,7 @@
        • symphonymatSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
        • -
        • Symphony Native Functions +
        • Symphony Native Functions
          • sym_addConstrAdd a new constraint
          • diff --git a/help/en_US/scilab_en_US_help/intfminbnd.html b/help/en_US/scilab_en_US_help/intfminbnd.html new file mode 100644 index 0000000..c494c4d --- /dev/null +++ b/help/en_US/scilab_en_US_help/intfminbnd.html @@ -0,0 +1,178 @@ + + + intfminbnd + + + +
            + + + + +
            + << fminunc + + + FOSSEE Optimization Toolbox + + + intfmincon >> + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > intfminbnd + +

            +

            intfminbnd

            +

            Solves a multi-variable optimization problem on a bounded interval

            + + +

            Calling Sequence

            +
            xopt = intfminbnd(f,intcon,x1,x2)
            +xopt = intfminbnd(f,intcon,x1,x2,options)
            +[xopt,fopt] = intfminbnd(.....)
            +[xopt,fopt,exitflag]= intfminbnd(.....)
            +[xopt,fopt,exitflag,output]=intfminbnd(.....)
            +[xopt,fopt,exitflag,gradient,hessian]=intfminbnd(.....)
            + +

            Input Parameters

            +
            f : +

            A function, representing the objective function of the problem.

            +
            : +

            A vector, containing the lower bound of the variables of size (1 X n) or (n X 1) where n is number of variables. If it is empty it means that the lower bound is .

            +
            : +

            A vector, containing the upper bound of the variables of size (1 X n) or (n X 1) or (0 X 0) where n is the number of variables. If it is empty it means that the upper bound is .

            +
            intcon : +

            A vector of integers, representing the variables that are constrained to be integers.

            +
            options : +

            A list, containing the options for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            +
            fopt : +

            A double, containing the the function value at x.

            +
            exitflag : +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            +
            gradient : +

            A vector of doubles, containing the objective's gradient of the solution.

            +
            hessian : +

            A matrix of doubles, containing the Lagrangian's hessian of the solution.

            + +

            Description

            +

            Search the minimum of a multi-variable function on bounded interval specified by : +Find the minimum of f(x) such that

            +

            +

            intfminbnd calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem.

            +

            Options

            +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

            +

            options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); +

            • IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.
            • +
            • MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.
            • +
            • CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.
            • +
            • AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.
            • +
            • MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.
            • +
            • gradobj : A string, to turn on or off the user supplied objective gradient.
            • +
            • hessian : A scalar, to turn on or off the user supplied objective hessian.
            + The default values for the various items are given as:

            +

            options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")

            + +

            The exitflag allows the user to know the status of the optimization which is returned by Bonmin. The values it can take and what they indicate is described below: +

            • 0 : Optimal Solution Found
            • +
            • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • +
            • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
            • +
            • 3 : Stop at Tiny Step.
            • +
            • 4 : Solved To Acceptable Level.
            • +
            • 5 : Converged to a point of local infeasibility.

            +

            For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin

            +

            +

            A few examples displaying the various functionalities of intfminbnd have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            We start with a simple objective function. Find x in R^6 such that it minimizes:

            +

            +

            +
            //Example 1:
            +//Objective function to be minimised
            +function y=f(x)
            +y=0
            +for i =1:6
            +y=y+sin(x(i));
            +end
            +endfunction
            +//Variable bounds
            +x1 = [-2, -2, -2, -2, -2, -2];
            +x2 = [2, 2, 2, 2, 2, 2];
            +intcon = [2 3 4]
            +[x,fval] =intfminbnd(f ,intcon, x1, x2)
            +// Press ENTER to continue
            + +

            Example

            + Here we solve a bounded objective function in R^6. We use this function to illustrate how we can further enhance the functionality of fminbnd by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options. +
            //Example 2:
            +//Objective function to be minimised
            +function y=f(x)
            +y=0
            +for i =1:6
            +y=y+sin(x(i));
            +end
            +endfunction
            +//Variable bounds
            +x1 = [-2, -2, -2, -2, -2, -2];
            +x2 = [2, 2, 2, 2, 2, 2];
            +intcon = [2 3 4]
            +//Options
            +options=list("MaxIter",[1500],"CpuTime", [100])
            +[x,fval] =intfminbnd(f ,intcon, x1, x2, options)
            +// Press ENTER to continue
            + + +

            Example

            +

            Unbounded Problems: Find x in R^2 such that it minimizes:

            +

            +

            +
            ///Example 3: Unbounded problem:
            +//Objective function to be minimised
            +function y=f(x)
            +y=-((x(1)-1)^2+(x(2)-1)^2);
            +endfunction
            +//Variable bounds
            +x1 = [-%inf , -%inf];
            +x2 = [ %inf , %inf];
            +//Options
            +options=list("MaxIter",[1500],"CpuTime", [100]);
            +intcon = [1 2];
            +[x,fval,exitflag,output,lambda] =intfminbnd(f,intcon, x1, x2, options)
            + +

            Authors

            +
            • Harpreet Singh
            +
            + + + + diff --git a/help/en_US/scilab_en_US_help/intfmincon.html b/help/en_US/scilab_en_US_help/intfmincon.html new file mode 100644 index 0000000..8a19596 --- /dev/null +++ b/help/en_US/scilab_en_US_help/intfmincon.html @@ -0,0 +1,339 @@ + + + intfmincon + + + +
            + + + + +
            + << intfminbnd + + + FOSSEE Optimization Toolbox + + + intfminimax >> + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > intfmincon + +

            +

            intfmincon

            +

            Solves a constrainted multi-variable mixed integer non linear programming problem

            + + +

            Calling Sequence

            +
            xopt = intfmincon(f,x0,intcon,A,b)
            +xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq)
            +xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub)
            +xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub,nlc)
            +xopt = intfmincon(f,x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
            +[xopt,fopt] = intfmincon(.....)
            +[xopt,fopt,exitflag]= intfmincon(.....)
            +[xopt,fopt,exitflag,gradient]=intfmincon(.....)
            +[xopt,fopt,exitflag,gradient,hessian]=intfmincon(.....)
            + +

            Input Parameters

            +
            f : +

            A function, representing the objective function of the problem.

            +
            x0 : +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            intcon : +

            A vector of integers, representing the variables that are constrained to be integers.

            +
            A : +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            +
            b : +

            A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

            +
            Aeq : +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            +
            beq : +

            A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

            +
            lb : +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            ub : +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            nlc : +

            A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.

            +
            options : +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the the computed solution of the optimization problem.

            +
            fopt : +

            A double, containing the value of the function at xopt.

            +
            exitflag : +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            +
            gradient : +

            a vector of doubles, containing the Objective's gradient of the solution.

            +
            hessian : +

            a matrix of doubles, containing the Objective's hessian of the solution.

            + +

            Description

            +

            Search the minimum of a mixed integer constrained optimization problem specified by : +Find the minimum of f(x) such that

            +

            +

            intfmincon calls Bonmin, an optimization library written in C++, to solve the Constrained Optimization problem.

            +

            Options

            +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

            +

            options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); +

            • IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.
            • +
            • MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.
            • +
            • CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.
            • +
            • AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.
            • +
            • MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.
            • +
            • gradobj : A string, to turn on or off the user supplied objective gradient.
            • +
            • hessian : A scalar, to turn on or off the user supplied objective hessian.
            + The default values for the various items are given as:

            +

            options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")

            +

            +

            The exitflag allows to know the status of the optimization which is given back by Ipopt. +

            • 0 : Optimal Solution Found
            • +
            • 1 : InFeasible Solution.
            • +
            • 2 : Objective Function is Continuous Unbounded.
            • +
            • 3 : Limit Exceeded.
            • +
            • 4 : User Interrupt.
            • +
            • 5 : MINLP Error.

            +

            For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin

            +

            +

            A few examples displaying the various functionalities of intfmincon have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            Here we solve a simple objective function, subjected to three linear inequality constraints.

            +

            Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 1:
            +//Objective function to be minimised
            +function [y, dy]=f(x)
            +y=-x(1)-x(2)/3;
            +dy= [-1,-1/3];
            +endfunction
            +//Starting point
            +x0=[0 , 0];
            +//Integer constraints
            +intcon = [1];
            +//Initializing the linear inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1 ;];
            +b=[2;1;2];
            +//Calling Bonmin
            +[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b)
            +// Press ENTER to continue
            + +

            Example

            +

            Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above:

            +

            +

            +
            //Example 2:
            +//Objective function to be minimised
            +function [y, dy]=f(x)
            +y=-x(1)-x(2)/3;
            +dy= [-1,-1/3];
            +endfunction
            +//Starting point
            +x0=[0 , 0];
            +//Integer constraints
            +intcon = [1];
            +//Initializing the linear inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1 ;];
            +b=[2;1;2];
            +//Linear equality constraints
            +Aeq=[1,-1;2,1];
            +beq=[1,2];
            +//Calling Bonmin
            +[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq)
            +// Press ENTER to continue
            + +

            Example

            +

            In this example, we proceed to add the upper and lower bounds to the objective function.

            +

            Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 3:
            +//Objective function to be minimised
            +function [y, dy]=f(x)
            +y=-x(1)-x(2)/3;
            +dy= [-1,-1/3];
            +endfunction
            +//Starting point
            +x0=[0 , 0];
            +//Integer constraints
            +intcon = [1];
            +//Initializing the linear inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1 ;];
            +b=[2;1;2];
            +//Linear equality constraints
            +Aeq=[1,-1;2,1];
            +beq=[1,2];
            +//Adding the variable bounds  
            +lb=[-1, -%inf];
            +ub=[%inf, 1];
            +//Calling Bonmin
            +[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub)
            +// Press ENTER to continue
            + +

            Example

            +

            Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints.

            +

            +

            +
            //Example 4:
            +//Objective function to be minimised
            +function [y, dy]=f(x)
            +y=x(1)*x(2)+x(2)*x(3);
            +dy= [x(2),x(1)+x(3),x(2)];
            +endfunction
            +//Starting point, linear constraints and variable bounds
            +x0=[0.1 , 0.1 , 0.1];
            +intcon = [2]
            +A=[];
            +b=[];
            +Aeq=[];
            +beq=[];
            +lb=[];
            +ub=[];
            +//Nonlinear constraints
            +function [c, ceq, cg, cgeq]=nlc(x)
            +c = [x(1)^2 - x(2)^2 + x(3)^2 - 2 , x(1)^2 + x(2)^2 + x(3)^2 - 10];
            +ceq = [];
            +cg=[2*x(1) , -2*x(2) , 2*x(3) ; 2*x(1) , 2*x(2) , 2*x(3)];
            +cgeq=[];
            +endfunction
            +//Options
            +options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", "on","GradCon", "on");
            +//Calling Ipopt
            +[x,fval,exitflag,output] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
            +// Press ENTER to continue
            + +

            Example

            +

            We can further enhance the functionality of intfmincon by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 5. We take the following problem and add simple non-linear constraints, specify the gradients and the hessian of the Lagrange Function. We also set solver parameters using the options.

            +

            +
            //Example 5:
            +//Objective function to be minimised
            +function [y, dy]=f(x)
            +y=x(1)*x(2)+x(2)*x(3);
            +dy= [x(2),x(1)+x(3),x(2)];
            +endfunction
            +//Starting point, linear constraints and variable bounds
            +x0=[0.1 , 0.1 , 0.1];
            +intcon = [2]
            +A=[];
            +b=[];
            +Aeq=[];
            +beq=[];
            +lb=[];
            +ub=[];
            +//Nonlinear constraints
            +function [c, ceq, cg, cgeq]=nlc(x)
            +c = [x(1)^2 - x(2)^2 + x(3)^2 - 2 , x(1)^2 + x(2)^2 + x(3)^2 - 10];
            +ceq = [];
            +cg=[2*x(1) , -2*x(2) , 2*x(3) ; 2*x(1) , 2*x(2) , 2*x(3)];
            +cgeq=[];
            +endfunction
            +//Options
            +options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", "on","GradCon", "on");
            +//Calling Ipopt
            +[x,fval,exitflag,output] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
            +// Press ENTER to continue
            + +

            Example

            +

            Infeasible Problems: Find x in R^3 such that it minimizes:

            +

            +

            +
            //Example 6:
            +//Objective function to be minimised
            +function [y, dy]=f(x)
            +y=x(1)*x(2)+x(2)*x(3);
            +dy= [x(2),x(1)+x(3),x(2)];
            +endfunction
            +//Starting point, linear constraints and variable bounds
            +x0=[1,1,1];
            +intcon = [2]
            +A=[];
            +b=[];
            +Aeq=[];
            +beq=[];
            +lb=[0 0.2,-%inf];
            +ub=[0.6 %inf,1];
            +//Nonlinear constraints
            +function [c, ceq, cg, cgeq]=nlc(x)
            +c=[x(1)^2-1,x(1)^2+x(2)^2-1,x(3)^2-1];
            +ceq=[x(1)^3-0.5,x(2)^2+x(3)^2-0.75];
            +cg = [2*x(1),0,0;2*x(1),2*x(2),0;0,0,2*x(3)];
            +cgeq = [3*x(1)^2,0,0;0,2*x(2),2*x(3)];
            +endfunction
            +//Options
            +options=list("MaxIter", [1500], "CpuTime", [500], "GradObj", "on","GradCon", "on");
            +//Calling Bonmin
            +[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,nlc,options)
            +// Press ENTER to continue
            + +

            Example

            +

            Unbounded Problems: Find x in R^3 such that it minimizes:

            +

            +

            +
            //Example 7:
            +//The below problem is an unbounded problem:
            +//Find x in R^3 such that it minimizes:
            +//f(x)= -(x1^2 + x2^2 + x3^2)
            +//x0=[0.1 , 0.1 , 0.1]
            +//  x1 <= 0
            +//  x2 <= 0
            +//  x3 <= 0
            +//Objective function to be minimised
            +function y=f(x)
            +y=-(x(1)^2+x(2)^2+x(3)^2);
            +endfunction
            +//Starting point, linear constraints and variable bounds
            +x0=[0.1 , 0.1 , 0.1];
            +intcon = [3]
            +A=[];
            +b=[];
            +Aeq=[];
            +beq=[];
            +lb=[];
            +ub=[0,0,0];
            +//Options
            +options=list("MaxIter", [1500], "CpuTime", [500]);
            +//Calling Bonmin
            +[x,fval,exitflag,grad,hessian] =intfmincon(f, x0,intcon,A,b,Aeq,beq,lb,ub,[],options)
            +// Press ENTER to continue
            + + +

            Authors

            +
            • Harpreet Singh
            +
            + + + + diff --git a/help/en_US/scilab_en_US_help/intfminimax.html b/help/en_US/scilab_en_US_help/intfminimax.html new file mode 100644 index 0000000..8c3e809 --- /dev/null +++ b/help/en_US/scilab_en_US_help/intfminimax.html @@ -0,0 +1,364 @@ + + + intfminimax + + + +
            + + + + +
            + << intfmincon + + + FOSSEE Optimization Toolbox + + + intfminunc >> + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > intfminimax + +

            +

            intfminimax

            +

            Solves minimax constraint problem

            + + +

            Calling Sequence

            +
            xopt = intfminimax(fun,x0,intcon)
            +xopt = intfminimax(fun,x0,intcon,A,b)
            +xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq)
            +xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub)
            +xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub,nonlinfun)
            +xopt = intfminimax(fun,x0,intcon,A,b,Aeq,beq,lb,ub,nonlinfun,options)
            +[xopt, fval] = intfminimax(.....)
            +[xopt, fval, maxfval]= intfminimax(.....)
            +[xopt, fval, maxfval, exitflag]= intfminimax(.....)
            + +

            Input Parameters

            +
            fun: +

            The function to be minimized. fun is a function that has a vector x as an input argument, and contains the objective functions evaluated at x.

            +
            x0 : +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.

            +
            A : +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            +
            b : +

            A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

            +
            Aeq : +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            +
            beq : +

            A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

            +
            intcon : +

            A vector of integers, representing the variables that are constrained to be integers.

            +
            lb : +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            ub : +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            nonlinfun: +

            A function, representing the Non-linear Constraints functions(both Equality and Inequality) of the problem. It is declared in such a way that non-linear inequality constraints (c), and the non-linear equality constraints (ceq) are defined as separate single row vectors.

            +
            options : +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            +
            fopt : +

            A vector of doubles, containing the values of the objective functions at the end of the optimization problem.

            +
            maxfval: +

            A double, representing the maximum value in the vector fval.

            +
            exitflag : +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            +
            output : +

            A structure, containing the information about the optimization. See below for details.

            +
            lambda : +

            A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.

            + +

            Description

            +

            intfminimax minimizes the worst-case (largest) value of a set of multivariable functions, starting at an initial estimate. This is generally referred to as the minimax problem.

            +

            +

            max-min problems can also be solved with intfminimax, using the identity

            +

            +

            Currently, intfminimax calls intfmincon, which uses the bonmin algorithm, an optimization library in C++.

            + +

            Options

            +

            The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

            +

            options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); +

            • IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.
            • +
            • MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.
            • +
            • CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.
            • +
            • AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.
            • +
            • MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.
            • +
            • gradobj : A string, to turn on or off the user supplied objective gradient.
            • +
            • hessian : A scalar, to turn on or off the user supplied objective hessian.
            + The default values for the various items are given as:

            +

            options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")

            +

            The objective function must have header : +

            F = fun(x)
            +where x is a n x 1 matrix of doubles and F is a m x 1 matrix of doubles where m is the total number of objective functions inside F. +On input, the variable x contains the current point and, on output, the variable F must contain the objective function values.

            +

            By default, the gradient options for intfminimax are turned off and and fmincon does the gradient opproximation of minmaxObjfun. In case the GradObj option is off and GradCon option is on, intfminimax approximates minmaxObjfun gradient using the numderivative toolbox.

            +

            If we can provide exact gradients, we should do so since it improves the convergence speed of the optimization algorithm.

            +

            +

            The exitflag allows to know the status of the optimization which is given back by Bonmin. +

            • 0 : Optimal Solution Found
            • +
            • 1 : InFeasible Solution.
            • +
            • 2 : Objective Function is Continuous Unbounded.
            • +
            • 3 : Limit Exceeded.
            • +
            • 4 : User Interrupt.
            • +
            • 5 : MINLP Error.

            +

            For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin

            +

            +

            A few examples displaying the various functionalities of intfminimax have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            + Here we solve a simple objective function, subjected to no constraints. +

            +

            +
            // Example 1:
            +//Objective function
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +// The initial guess
            +x0 = [0.1,0.1];
            +// The expected solution : only 4 digits are guaranteed
            +xopt = [4 4]
            +fopt = [0 -64 -2 -8 0]
            +intcon = [1]
            +maxfopt = 0
            +// Run intfminimax
            +[x,fval,maxfval,exitflag] = intfminimax(myfun, x0,intcon)
            +// Press ENTER to continue
            + +

            Example

            + We proceed to add simple linear inequality constraints. + +

            +

            +
            //Example 2:
            +//Objective function
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +// The initial guess
            +x0 = [0.1,0.1];
            +//Linear Inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1];
            +b=[2;1;1];
            +////Integer constraints
            +intcon = [1];
            +// Run intfminimax
            +[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b)
            + +

            Example

            +Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: +

            +

            +
            //Example 3:
            +//Objective function
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +// The initial guess
            +x0 = [0.1,0.1];
            +//Linear Inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1];
            +b=[2;1;1];
            +//We specify the linear equality constraints below.
            +Aeq = [1,-1; 2, 1];
            +beq =  [1;2];
            +//Integer constraints
            +intcon = [1];
            +// Run intfminimax
            +[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b,Aeq,beq)
            + +

            Example

            +In this example, we proceed to add the upper and lower bounds to the objective function. +

            +

            +
            //Example 4:
            +//Objective function
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +// The initial guess
            +x0 = [0.1,0.1];
            +//Linear Inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1];
            +b=[2;1;1];
            +//We specify the linear equality constraints below.
            +Aeq = [1,-1; 2, 1];
            +beq =  [1;2];
            +//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
            +lb = [-1;-%inf];
            +ub = [%inf;1];    
            +//Integer constraints
            +intcon = [1];
            +// Run intfminimax
            +[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b,Aeq,beq,lb,ub)
            + + +

            Example

            +Finally, we add the non-linear constraints to the problem. Note that there is a notable difference in the way this is done as compared to defining the linear constraints. +

            +

            +
            //Example 5:
            +//Objective function
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +// The initial guess
            +x0 = [0.1,0.1];
            +//Linear Inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1];
            +b=[2;1;1];
            +//We specify the linear equality constraints below.
            +Aeq = [1,-1; 2, 1];
            +beq =  [1;2];
            +//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
            +lb = [-1;-%inf];
            +ub = [%inf;1];    //
            +//Nonlinear constraints are required to be defined as a single function with the inequality and equality constraints in separate vectors.
            +function [c, ceq]=nlc(x)
            +c=[x(1)^2-1,x(1)^2+x(2)^2-1];
            +ceq=[];
            +endfunction
            +intcon = [1];
            +// Run intfminimax
            +[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun, intcon,x0,A,b,Aeq,beq,lb,ub)
            + +

            Example

            +

            We can further enhance the functionality of fminimax by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 6. We take the following problem, specify the gradients, and the jacobian matrix of the constraints. We also set solver parameters using the options.

            +

            +

            +
            //Example 6: Using the available options
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +
            +// Defining gradient of myfun
            +function G=myfungrad(x)
            +G = [ 4*x(1) - 48, -2*x(1), 1, -1, 1;
            +2*x(2) - 40, -6*x(2), 3, -1, 1; ]'
            +endfunction
            +// The nonlinear constraints and the Jacobian
            +// matrix of the constraints
            +function [c, ceq]=confun(x)
            +// Inequality constraints
            +c = [1.5 + x(1)*x(2) - x(1) - x(2), -x(1)*x(2) - 10]
            +// No nonlinear equality constraints
            +ceq=[]
            +endfunction
            +// Defining gradient of confungrad
            +function [DC, DCeq]=cgrad(x)
            +// DC(:,i) = gradient of the i-th constraint
            +// DC = [
            +//   Dc1/Dx1  Dc1/Dx2
            +//   Dc2/Dx1  Dc2/Dx2
            +//   ]
            +DC= [
            +x(2)-1, -x(2)
            +x(1)-1, -x(1)
            +]'
            +DCeq = []'
            +endfunction
            +// Test with both gradient of objective and gradient of constraints
            +Options = list("MaxIter", [3000], "CpuTime", [600],"GradObj",myfungrad,"GradCon",cgrad);
            +// The initial guess
            +x0 = [0,10];
            +// The expected solution : only 4 digits are guaranteed
            +xopt = [0.92791 7.93551]
            +fopt = [6.73443  -189.778  6.73443  -8.86342  0.86342]
            +maxfopt = 6.73443
            +//integer constraints
            +intcon = [1];
            +// Run intfminimax
            +[x,fval,maxfval,exitflag,output] = intfminimax(myfun,intcon,x0,[],[],[],[],[],[], confun, Options)
            + +

            Example

            +Infeasible Problems: Find x in R^2 such that it minimizes the objective function used above under the following constraints: +

            +

            +
            //Example 7:
            +//Objective function
            +function f=myfun(x)
            +f(1)= 2*x(1)^2 + x(2)^2 - 48*x(1) - 40*x(2) + 304;     //Objectives
            +f(2)= -x(1)^2 - 3*x(2)^2;
            +f(3)= x(1) + 3*x(2) -18;
            +f(4)= -x(1) - x(2);
            +f(5)= x(1) + x(2) - 8;
            +endfunction
            +// The initial guess
            +x0 = [0.1,0.1];
            +//Linear Inequality constraints
            +A=[1,1 ; 1,1/4 ; 1,-1];
            +b=[2;1;1];
            +//We specify the linear equality constraints below.
            +Aeq = [1/3,-5; 2, 1];
            +beq =  [11;8];
            +//integer constraints
            +intcon = [1];
            +// Run intfminimax
            +[x,fval,maxfval,exitflag,output,lambda] = intfminimax(myfun,intcon, x0,A,b,Aeq,beq)
            + + +

            Authors

            +
            • Harpreet Singh
            +
            + + + + diff --git a/help/en_US/scilab_en_US_help/intfminunc.html b/help/en_US/scilab_en_US_help/intfminunc.html new file mode 100644 index 0000000..a188795 --- /dev/null +++ b/help/en_US/scilab_en_US_help/intfminunc.html @@ -0,0 +1,173 @@ + + + intfminunc + + + +
            + + + + +
            + << intfminimax + + + FOSSEE Optimization Toolbox + + + intqpipopt >> + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > intfminunc + +

            +

            intfminunc

            +

            Solves an unconstrainted multi-variable mixed integer non linear programming optimization problem

            + + +

            Calling Sequence

            +
            xopt = intfminunc(f,x0)
            +xopt = intfminunc(f,x0,intcon)
            +xopt = intfminunc(f,x0,intcon,options)
            +[xopt,fopt] = intfminunc(.....)
            +[xopt,fopt,exitflag]= intfminunc(.....)
            +[xopt,fopt,exitflag,gradient,hessian]= intfminunc(.....)
            + +

            Input Parameters

            +
            f : +

            A function, representing the objective function of the problem.

            +
            x0 : +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of Variables.

            +
            intcon : +

            A vector of integers, representing the variables that are constrained to be integers.

            +
            options : +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            +
            fopt : +

            A double, containing the the function value at x.

            +
            exitflag : +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            +
            gradient : +

            A vector of doubles, containing the objective's gradient of the solution.

            +
            hessian : +

            A matrix of doubles, containing the Lagrangian's hessian of the solution.

            + +

            Description

            +

            Search the minimum of a multi-variable mixed integer non linear programming unconstrained optimization problem specified by : +Find the minimum of f(x) such that

            +

            +

            intfminunc calls Bonmin, which is an optimization library written in C++, to solve the bound optimization problem.

            +

            Options

            +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

            +

            options= list("IntegerTolerance", [---], "MaxNodes",[---], "MaxIter", [---], "AllowableGap",[---] "CpuTime", [---],"gradobj", "off", "hessian", "off" ); +

            • IntegerTolerance : A Scalar, a number with that value of an integer is considered integer.
            • +
            • MaxNodes : A Scalar, containing the maximum number of nodes that the solver should search.
            • +
            • CpuTime : A scalar, specifying the maximum amount of CPU Time in seconds that the solver should take.
            • +
            • AllowableGap : A scalar, that specifies the gap between the computed solution and the the objective value of the best known solution stop, at which the tree search can be stopped.
            • +
            • MaxIter : A scalar, specifying the maximum number of iterations that the solver should take.
            • +
            • gradobj : A string, to turn on or off the user supplied objective gradient.
            • +
            • hessian : A scalar, to turn on or off the user supplied objective hessian.
            + The default values for the various items are given as:

            +

            options = list('integertolerance',1d-06,'maxnodes',2147483647,'cputime',1d10,'allowablegap',0,'maxiter',2147483647,'gradobj',"off",'hessian',"off")

            +

            +

            The exitflag allows to know the status of the optimization which is given back by Ipopt. +

            • 0 : Optimal Solution Found
            • +
            • 1 : InFeasible Solution.
            • +
            • 2 : Objective Function is Continuous Unbounded.
            • +
            • 3 : Limit Exceeded.
            • +
            • 4 : User Interrupt.
            • +
            • 5 : MINLP Error.

            +

            For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin

            +

            +

            A few examples displaying the various functionalities of intfminunc have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            + +

            Example

            +

            We begin with the minimization of a simple non-linear function.

            +

            Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 1:
            +//Objective function to be minimised
            +function y=f(x)
            +y= x(1)^2 + x(2)^2;
            +endfunction
            +//Starting point
            +x0=[2,1];
            +intcon = [1];
            +[xopt,fopt]=intfminunc(f,x0,intcon)
            +// Press ENTER to continue
            + +

            Example

            +

            We now look at the Rosenbrock function, a non-convex performance test problem for optimization routines. We use this example to illustrate how we can enhance the functionality of intfminunc by setting input options. We can pre-define the gradient of the objective function and/or the hessian of the lagrange function and thereby improve the speed of computation. This is elaborated on in example 2. We also set solver parameters using the options.

            +

            +

            +
            ///Example 2:
            +//Objective function to be minimised
            +function y=f(x)
            +y= 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;
            +endfunction
            +//Starting point
            +x0=[-1,2];
            +intcon = [2]
            +//Options
            +options=list("MaxIter", [1500], "CpuTime", [500]);
            +//Calling
            +[xopt,fopt,exitflag,gradient,hessian]=intfminunc(f,x0,intcon,options)
            +// Press ENTER to continue
            + + + +

            Example

            +

            Unbounded Problems: Find x in R^2 such that it minimizes:

            +

            +

            +
            //The below problem is an unbounded problem:
            +//Find x in R^2 such that the below function is minimum
            +//f = - x1^2 - x2^2
            +//Objective function to be minimised
            +function [y, g, h]=f(x)
            +y = -x(1)^2 - x(2)^2;
            +g = [-2*x(1),-2*x(2)];
            +h = [-2,0;0,-2];
            +endfunction
            +//Starting point
            +x0=[2,1];
            +intcon = [1]
            +options = list("gradobj","ON","hessian","on");
            +[xopt,fopt,exitflag,gradient,hessian]=intfminunc(f,x0,intcon,options)
            +
            + + + + diff --git a/help/en_US/scilab_en_US_help/intqpipopt.html b/help/en_US/scilab_en_US_help/intqpipopt.html new file mode 100644 index 0000000..2fbad90 --- /dev/null +++ b/help/en_US/scilab_en_US_help/intqpipopt.html @@ -0,0 +1,267 @@ + + + intqpipopt + + + +
            + + + + +
            + << intfminunc + + + FOSSEE Optimization Toolbox + + + linprog >> + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > intqpipopt + +

            +

            intqpipopt

            +

            Solves a linear quadratic problem.

            + + +

            Calling Sequence

            +
            xopt = intqpipopt(H,f)
            +xopt = intqpipopt(H,f,intcon)
            +xopt = intqpipopt(H,f,intcon,A,b)
            +xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq)
            +xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub)
            +xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0)
            +xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options)
            +xopt = intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options,"file_path")
            +[xopt,fopt,exitflag,output] = intqpipopt( ... )
            + +

            Input Parameters

            +
            H : +

            A symmetric matrix of doubles, representing the Hessian of the quadratic problem.

            +
            f : +

            A vector of doubles, representing coefficients of the linear terms in the quadratic problem.

            +
            intcon : +

            A vector of integers, representing the variables that are constrained to be integers.

            +
            A : +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            +
            b : +

            A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

            +
            Aeq : +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            +
            beq : +

            A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

            +
            lb : +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            ub : +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            x0 : +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            options : +

            A list, containing the option for user to specify. See below for details.

            +
            file_path : +

            path to bonmin opt file if used.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            +
            fopt : +

            A double, containing the value of the function at xopt.

            +
            exitflag : +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            +
            output : +

            A structure, containing the information about the optimization. See below for details.

            + +

            Description

            +

            Search the minimum of a constrained linear quadratic optimization problem specified by :

            +

            +

            intqpipopt calls Bonmin, a library written in C++ to solve the quadratic problem.

            +

            The exitflag allows to know the status of the optimization which is given back by Ipopt. +

            • 0 : Optimal Solution Found
            • +
            • 1 : InFeasible Solution.
            • +
            • 2 : Objective Function is Continuous Unbounded.
            • +
            • 3 : Limit Exceeded.
            • +
            • 4 : User Interrupt.
            • +
            • 5 : MINLP Error.

            +

            For more details on exitflag, see the Bonmin documentation which can be found on http://www.coin-or.org/Bonmin

            +

            +

            The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

            • output.constrviolation: The max-norm of the constraint violation.

            +

            +

            A few examples displaying the various functionalities of intqpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            Here we solve a simple objective function.

            +

            Find x in R^6 such that it minimizes:

            +

            +

            +
            //Example 1:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Integer Constraints
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f)
            + +

            Example

            + We proceed to add simple linear inequality constraints. + +

            +

            +
            //Example 2:
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Integer Constraints
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b)
            + +

            Example

            + Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: +

            +

            +
            //Example 3:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6;
            +2,5,3,0,1,0];
            +beq=[1; 2; 3];
            +//Integer Constraints
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq)
            + +

            Example

            +

            In this example, we proceed to add the upper and lower bounds to the objective function.

            +

            +

            +
            //Example 4:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6;
            +2,5,3,0,1,0];
            +beq=[1; 2; 3];
            +//Variable bounds
            +lb=[-1000; -10000; 0; -1000; -1000; -1000];
            +ub=[10000; 100; 1.5; 100; 100; 1000];
            +//Integer Constraints
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub)
            + +

            Example

            +

            In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options.

            +
            //Example 5:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6;
            +2,5,3,0,1,0];
            +beq=[1; 2; 3];
            +//Variable bounds
            +lb=[-1000; -10000; 0; -1000; -1000; -1000];
            +ub=[10000; 100; 1.5; 100; 100; 1000];
            +//Initial guess and options
            +x0 = repmat(0,6,1);
            +options = list("MaxIter", 300, "CpuTime", 100);
            +//Integer Constraints
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq,lb,ub,x0,options)
            + +

            Example

            +Infeasible Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints: +

            +

            +
            //Example 6:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [0,1,0,1,2,-1;
            +-1,0,-3,-4,5,6];
            +beq=[4; 2];
            +//Integer Constraints
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq)
            + +

            Example

            +

            Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:

            +

            +

            +
            //Example 7:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); H(1,1) = -1;
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6];
            +beq=[1; 2];
            +intcon = [2 ,4];
            +//Running intqpipopt
            +[xopt,fopt,exitflag,output,lambda]=intqpipopt(H,f,intcon,A,b,Aeq,beq)
            + +

            Authors

            +
            • Akshay Miterani and Pranav Deshpande
            +
            + + + + diff --git a/help/en_US/scilab_en_US_help/jhelpmap.jhm b/help/en_US/scilab_en_US_help/jhelpmap.jhm index eb373d9..565fb48 100644 --- a/help/en_US/scilab_en_US_help/jhelpmap.jhm +++ b/help/en_US/scilab_en_US_help/jhelpmap.jhm @@ -2,12 +2,18 @@ - + + + + + + + @@ -16,7 +22,7 @@ - + diff --git a/help/en_US/scilab_en_US_help/jhelptoc.xml b/help/en_US/scilab_en_US_help/jhelptoc.xml index c769e27..55711ed 100644 --- a/help/en_US/scilab_en_US_help/jhelptoc.xml +++ b/help/en_US/scilab_en_US_help/jhelptoc.xml @@ -2,12 +2,18 @@ - + + + + + + + @@ -16,7 +22,7 @@ - + diff --git a/help/en_US/scilab_en_US_help/linprog.html b/help/en_US/scilab_en_US_help/linprog.html index 0ecb1ba..c3310e2 100644 --- a/help/en_US/scilab_en_US_help/linprog.html +++ b/help/en_US/scilab_en_US_help/linprog.html @@ -12,11 +12,11 @@
            - << fminunc + << intqpipopt - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > linprog + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > linprog

            linprog

            @@ -45,77 +45,90 @@ xopt = linprog(file,param) [xopt,fopt,exitflag,output,lambda] = linprog( ... )
            -

            Parameters

            +

            Input Parameters

            c : -

            a vector of double, contains coefficients of the variables in the objective

            +

            A vector of doubles, containing the coefficients of the variables in the objective function.

            A : -

            a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            b : -

            a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).

            Aeq : -

            a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            beq : -

            a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).

            lb : -

            Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.

            +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            ub : -

            Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.

            +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            options : -

            a list containing the parameters to be set.

            +

            A list, containing the option for user to specify. See below for details.

            file : -

            a string describing the path to the mps file.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A string describing the path to the mps file.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            fopt : -

            a double, the value of the function at x.

            -
            status : -

            status flag returned from symphony. See below for details.

            +

            A double, containing the the function value at x.

            +
            exitflaf : +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            output : -

            The output data structure contains detailed information about the optimization process. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            lambda : -

            The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

            +

            A structure, containing the Lagrange multipliers of lower bound, upper bound and constraints at the optimized point. See below for details.

            + +

            Description

            -

            OSI-CLP is used for solving the linear programming problems, OSI-CLP is a library written in C++. -Search the minimum of a constrained linear programming problem specified by :

            -

            -

            The routine calls Clp for solving the linear programming problem, Clp is a library written in C++.

            -

            The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. In the current version it only contains maxiter. -

            • Syntax : options= list("MaxIter", [---]);
            • -
            • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
            • -
            • Default Values : options = list("MaxIter", [3000]);

            -

            The exitflag allows to know the status of the optimization which is given back by CLP. -

            • exitflag=0 : Optimal Solution Found
            • -
            • exitflag=1 : Primal Infeasible
            • -
            • exitflag=2 : Dual Infeasible
            • -
            • exitflag=3 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • -
            • exitflag=4 : Solution Abandoned
            • -
            • exitflag=5 : Primal objective limit reached.
            • -
            • exitflag=6 : Dual objective limit reached.

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search
            • +

              Search the minimum of a constrained linear programming problem specified by :

              +

              +

              OSI-CLP, an optimization library written in C++, is used for solving the linear programming problems.

              +

              Options

              +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

              +

              options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);

              +

              The options should be defined as type "list" and consist of the following fields: +

              • MaxIter : A Scalar, specifying the Maximum Number of iterations that the solver should take.

              +

              The default values for the various items are given as:

              +

              options = list("MaxIter", [3000], "CpuTime", [600]);

              + +

              The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

              • 0 : Optimal Solution Found
              • +
              • 1 : Primal Infeasible
              • +
              • 2 : Dual Infeasible
              • +
              • 3 : Maximum Number of Iterations Exceeded. Output may not be optimal.
              • +
              • 4 : Solution Abandoned
              • +
              • 5 : Primal objective limit reached.
              • +
              • 6 : Dual objective limit reached.

              + +

              The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

              • output.Iterations: The number of iterations performed.
              • output.constrviolation: The max-norm of the constraint violation.

              -

              The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

              The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

              • lambda.lower: The Lagrange multipliers for variable lower bounds.
              • lambda.eqlin: The Lagrange multipliers for the linear equality constraints.
              • lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.

            -

            Examples

            -
            //Optimal problems
            -//Linear program, linear inequality constraints
            +

            A few examples displaying the various functionalities of linprog have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            Here we solve a simple objective function, subjected to six linear inequality constraints.

            +

            Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 1: Linear program, linear inequality constraints
             c=[-1,-1/3]'
             A=[1,1;1,1/4;1,-1;-1/4,-1;-1,-1;-1,1]
             b=[2,1,2,1,-1,2]
             [xopt,fopt,exitflag,output,lambda]=linprog(c, A, b)
             // Press ENTER to continue
            -

            Examples

            -
            //Linear program with Linear Inequalities and Equalities`
            +

            Example

            +

            Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above:

            +

            +

            +
            //Example 2: Linear program with Linear Inequalities and Equalities`
             c=[-1,-1/3]'
             A=[1,1;1,1/4;1,-1;-1/4,-1;-1,-1;-1,1]
             b=[2,1,2,1,-1,2]
            @@ -124,8 +137,11 @@ It has type "struct" and contains the following fields.
             [xopt,fopt,exitflag,output,lambda]=linprog(c, A, b, Aeq, beq)
             // Press ENTER to continue
            -

            Examples

            -
            //Linear program with all constraint types
            +

            Example

            +

            In this example, we proceed to add the upper and lower bounds to the objective function.

            +

            +

            +
            //Example 3: Linear program with all constraint types
             c=[-1,-1/3]'
             A=[1,1;1,1/4;1,-1;-1/4,-1;-1,-1;-1,1]
             b=[2,1,2,1,-1,2]
            @@ -135,9 +151,11 @@ It has type "struct" and contains the following fields.
             ub=[1.5,1.25]
             [xopt,fopt,exitflag,output,lambda]=linprog(c, A, b, Aeq, beq, lb, ub)
             // Press ENTER to continue
            +

            Example

            -

            Examples

            -
            //Primal Infeasible Problem
            +   

            Primal Infeasible Problems: Find x in R^3 such that it minimizes:

            +

            +

            //Example 4: Primal Infeasible Problem
             c=[-1,-1,-1]'
             A=[1,2,-1]
             b=[-4]
            @@ -148,8 +166,12 @@ It has type "struct" and contains the following fields.
             [xopt,fopt,exitflag,output,lambda]= linprog(c,A,b,Aeq,beq,lb,ub)
             // Press ENTER to continue
            -

            Examples

            -
            //Dual Infeasible Problem
            +

            Example

            + +

            Unbounded Problems: Find x in R^3 such that it minimizes:

            +

            +

            +
            //Example 5: Unbounded Problem
             c=[3,5,-7]'
             A=[-1,-1,4;1,1,4]
             b=[-8,5]
            @@ -160,11 +182,15 @@ It has type "struct" and contains the following fields.
             [xopt,fopt,exitflag,output,lambda]= linprog(c,A,b,Aeq,beq,lb,ub)
             // Press ENTER to continue
            -

            Examples

            +

            Example

            filepath = get_absolute_file_path('linprog.dem.sce');
             filepath = filepath + "exmip1.mps"
             [xopt,fopt,exitflag,output,lambda] =linprog(filepath)
            + + + +

            Authors

            • Bhanu Priya Sayal, Guru Pradeep Reddy

            @@ -174,11 +200,11 @@ It has type "struct" and contains the following fields.
            Report an issue
            - << fminunc + << intqpipopt - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/lsqlin.html b/help/en_US/scilab_en_US_help/lsqlin.html index 5a26c54..07a5369 100644 --- a/help/en_US/scilab_en_US_help/lsqlin.html +++ b/help/en_US/scilab_en_US_help/lsqlin.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > lsqlin + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > lsqlin

            lsqlin

            @@ -41,67 +41,66 @@ xopt = lsqlin(C,d,A,b,Aeq,beq) xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub) xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) -xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,param) +xopt = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin( ... )
            -

            Parameters

            +

            Input Parameters

            C : -

            a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x.

            +

            A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x.

            d : -

            a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix.

            +

            A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix.

            A : -

            a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            b : -

            a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

            Aeq : -

            a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            beq : -

            a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

            lb : -

            a vector of double, contains lower bounds of the variables.

            +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            ub : -

            a vector of double, contains upper bounds of the variables.

            +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            x0 : -

            a vector of double, contains initial guess of variables.

            -
            param : -

            a list containing the parameters to be set.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            options : +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            resnorm : -

            a double, objective value returned as the scalar value norm(C⋅x-d)^2.

            +

            A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2.

            residual : -

            a vector of double, solution residuals returned as the vector d-C⋅x.

            +

            A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x.

            exitflag : -

            The exit status. See below for details.

            +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            output : -

            The structure consist of statistics about the optimization. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            lambda : -

            The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

            - +

            A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.

            Description

            -

            Search the minimum of a constrained linear least square problem specified by :

            -

            -

            The routine calls Ipopt for solving the linear least square problem, Ipopt is a library written in C++.

            -

            The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

            • Syntax : options= list("MaxIter", [---], "CpuTime", [---]);
            • -
            • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
            • -
            • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
            • -
            • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

            -

            The exitflag allows to know the status of the optimization which is given back by Ipopt. -

            • exitflag=0 : Optimal Solution Found
            • -
            • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • -
            • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
            • -
            • exitflag=3 : Stop at Tiny Step.
            • -
            • exitflag=4 : Solved To Acceptable Level.
            • -
            • exitflag=5 : Converged to a point of local infeasibility.

            -

            For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search
            • +

              Search the minimum of a constrained linear least square problem specified by:

              +

              +

              lsqlin calls Ipopt, an optimization library written in C++, to solve the linear least squares problem.

              +

              The options should be defined as type "list" and consist of the following fields:

              +

              options= list("MaxIter", [---], "CpuTime", [---]);

              +

              • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
              • +
              • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.

              +

              The default values for the various items are given as:

              +

              options = list("MaxIter", [3000], "CpuTime", [600]);

              +

              The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

              • 0 : Optimal Solution Found
              • +
              • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
              • +
              • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
              • +
              • 3 : Stop at Tiny Step.
              • +
              • 4 : Solved To Acceptable Level.
              • +
              • 5 : Converged to a point of local infeasibility.

              +

              For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

              +

              The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

              • output.iterations: The number of iterations performed.
              • output.constrviolation: The max-norm of the constraint violation.

              -

              The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

              The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

              • lambda.lower: The Lagrange multipliers for the lower bound constraints.
              • lambda.upper: The Lagrange multipliers for the upper bound constraints.
              • @@ -109,23 +108,41 @@ It has type "struct" and contains the following fields.
              • lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.

            -

            Examples

            -
            //A simple linear least square example
            -C = [ 2 0;
            --1 1;
            -0 2]
            -d = [1
            -0
            --1];
            -A = [10 -2;
            --2 10];
            -b = [4
            --4];
            -[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b)
            -// Press ENTER to continue
            - -

            Examples

            -
            //A basic example for equality, inequality constraints and variable bounds
            +
            +

            A few examples displaying the various functionalities of lsqlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            We begin with a simple objective function subjected to three inequality constraints.

            +

            +

            +
            //Example 1:An example with inequality constraints.
            +//Initializing C and D.
            +C = [1 1 1;
            +1 1 0;
            +0 1 1;
            +1 0 0;
            +0 0 1]
            +d = [89;
            +67;
            +53;
            +35;
            +20];
            +//We specify the linear inequality constraints below.
            +A = [3 2 1;
            +2 3 4;
            +1 2 3];
            +b = [191
            +209
            +162];
            +//Run lsqlin
            +[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b);
            + +

            Example

            +

            Here we build up on the previous example by adding equality constraints. +We add the following constraint to the problem specified above:

            +

            +

            +
            //Example 2: Using  inequality and equality constraints.
            +//Initializing C and D.
             C = [1 1 1;
             1 1 0;
             0 1 1;
            @@ -135,19 +152,117 @@ It has type "struct" and contains the following fields.
             67;
             53;
             35;
            -20;]
            +20];
            +//We specify the linear inequality constraints below.
             A = [3 2 1;
             2 3 4;
             1 2 3];
             b = [191
             209
             162];
            +//We specify the linear equality constraints below.
             Aeq = [1 2 1];
             beq = 10;
            -lb = repmat(0.1,3,1);
            -ub = repmat(4,3,1);
            +//Run lsqlin
            +[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq)
            + +

            Example

            +

            In this example, we proceed to add the upper and lower bounds to the objective function.

            +

            +

            +
            //Example 3: Using equality, inequality constraints and variable bounds
            +//Initializing C and D.
            +C = [1 1 1;
            +1 1 0;
            +0 1 1;
            +1 0 0;
            +0 0 1]
            +d = [89;
            +67;
            +53;
            +35;
            +20];
            +//We specify the linear inequality constraints below.
            +A = [3 2 1;
            +2 3 4;
            +1 2 3];
            +b = [191
            +209
            +162];
            +//We specify the linear equality constraints below.
            +Aeq = [1 2 1];
            +beq = 10;
            +//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
            +lb = [0.1,3,1];
            +ub = [4,5,1];
            +//Run lsqlin
             [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
            +

            Example

            +

            In this example, we proceed to provide an initial value for x to facilitate the computation. We also further enhance the functionality of lsqlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.

            +

            +
            //Example 4: Using equality, inequality constraints and variable bounds, initializing x and options.
            +//Initializing C and D.
            +C = [1 1 1;
            +1 1 0;
            +0 1 1;
            +1 0 0;
            +0 0 1]
            +d = [89;
            +67;
            +53;
            +35;
            +20];
            +//We specify the linear inequality constraints below.
            +A = [3 2 1;
            +2 3 4;
            +1 2 3];
            +b = [191
            +209
            +162];
            +//We specify the linear equality constraints below.
            +Aeq = [1 2 1];
            +beq = 10;
            +//The upper and lower bounds for the objective function are defined in simple vectors as shown below.
            +lb = [0.1,3,1];
            +ub = [4,5,1];
            +//Initializing x.
            +x0 = [1,2,3]
            +//Setting the options
            +options = list("MaxIter", [5000], "CpuTime", [1000]);
            +//Run lsqlin
            +[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)
            + +

            Example

            +

            Infeasible Problems: Find x in R^3 such that it minimizes: +We add the following constraint to the objective function specified above:

            +

            +

            +
            //Example 5: Infeasible problem
            +//Initializing C and D.
            +C = [1 1 1;
            +1 1 0;
            +0 1 1;
            +1 0 0;
            +0 0 1]
            +d = [89;
            +67;
            +53;
            +35;
            +20];
            +//We specify the linear inequality constraints below.
            +A = [3 2 1;
            +2 3 4;
            +1 2 3];
            +b = [191
            +209
            +162];
            +//We specify the linear equality constraints below.
            +Aeq = [1 2 3];
            +beq = 200;
            +//Run lsqlin
            +[xopt,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,Aeq,beq)
            +

            Authors

            • Harpreet Singh

            @@ -161,7 +276,7 @@ It has type "struct" and contains the following fields.
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/lsqnonlin.html b/help/en_US/scilab_en_US_help/lsqnonlin.html index f2c32ce..b0b6219 100644 --- a/help/en_US/scilab_en_US_help/lsqnonlin.html +++ b/help/en_US/scilab_en_US_help/lsqnonlin.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > lsqnonlin + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > lsqnonlin

            lsqnonlin

            @@ -45,63 +45,92 @@ [xopt,resnorm,residual,exitflag] = lsqnonlin( ... ) [xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin( ... )
            -

            Parameters

            +

            Input Parameters

            fun : -

            a function, representing the objective function and gradient (if given) of the problem

            +

            A function, representing the objective function and gradient (if given) of the problem.

            x0 : -

            a vector of double, contains initial guess of variables.

            +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            lb : -

            a vector of double, contains lower bounds of the variables.

            +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            ub : -

            a vector of double, contains upper bounds of the variables.

            +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            options : -

            a list containing the parameters to be set.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            resnorm : -

            a double, objective value returned as the scalar value i.e. sum(fun(x).^2).

            +

            A double, containing the objective value returned as a scalar value i.e. sum(fun(x).^2).

            residual : -

            a vector of double, solution of objective function i.e. fun(x).

            +

            A vector of doubles, containing the solution of the objective function, returned as a vector i.e. fun(x).

            exitflag : -

            The exit status. See below for details.

            +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            output : -

            The structure consist of statistics about the optimization. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            lambda : -

            The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

            +

            A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.

            gradient : -

            a vector of doubles, containing the Objective's gradient of the solution.

            +

            A vector of doubles, containing the objective's gradient of the solution.

            Description

            Search the minimum of a constrained non-linear least square problem specified by :

            -

            -

            The routine calls fmincon which calls Ipopt for solving the non-linear least square problem, Ipopt is a library written in C++.

            -

            The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

            • Syntax : options= list("MaxIter", [---], "CpuTime", [---],"GradObj", "on");
            • -
            • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
            • -
            • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
            • -
            • GradObj : a string, representing the gradient function is on or off.
            • -
            • Default Values : options = list("MaxIter", [3000], "CpuTime", [600], "GradObj", "off");

            -

            The exitflag allows to know the status of the optimization which is given back by Ipopt. -

            • exitflag=0 : Optimal Solution Found
            • -
            • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • -
            • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
            • -
            • exitflag=3 : Stop at Tiny Step.
            • -
            • exitflag=4 : Solved To Acceptable Level.
            • -
            • exitflag=5 : Converged to a point of local infeasibility.

            -

            For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search
            • +

              +

              lsqnonlin calls fmincon, which calls Ipopt, an optimization library written in C++ to solve the non-linear least squares problem.

              + +

              The options should be defined as type "list" and consist of the following fields:

              +

              options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---);

              +

              • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
              • +
              • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.
              • +
              • GradObj : A string, representing whetherthe gradient function is on or off.

              +

              The default values for the various items are given as:

              +

              Default Values : options = list("MaxIter", [3000], "CpuTime", [600], "GradObj", "off");

              +

              The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

              • 0 : Optimal Solution Found
              • +
              • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
              • +
              • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
              • +
              • 3 : Stop at Tiny Step.
              • +
              • 4 : Solved To Acceptable Level.
              • +
              • 5 : Converged to a point of local infeasibility.

              +

              For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

              +

              The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

              • output.iterations: The number of iterations performed.
              • output.constrviolation: The max-norm of the constraint violation.

              -

              The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

              The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

              • lambda.lower: The Lagrange multipliers for the lower bound constraints.
              • lambda.upper: The Lagrange multipliers for the upper bound constraints.

            - -

            Examples

            +

            A few examples displaying the various functionalities of lsqnonlin have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            Here we solve a simple non-linear least square example taken from leastsq default present in scilab.

            +

            Find x in R^2 such that it minimizes:

            +

            +
            // we have the m measures (ti, yi):
            +m = 10;
            +tm = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5]';
            +ym = [0.79, 0.59, 0.47, 0.36, 0.29, 0.23, 0.17, 0.15, 0.12, 0.08]';
            +// measure weights (here all equal to 1...)
            +wm = ones(m,1);
            +// and we want to find the parameters x such that the model fits the given
            +// data in the least square sense:
            +//
            +//  minimize  f(x) = sum_i  wm(i)^2 ( x(1)*exp(-x(2)*tm(i) - ym(i) )^2
            +// initial parameters guess
            +x0 = [1.5 ; 0.8];
            +// in the first examples, we define the function fun and dfun
            +// in scilab language
            +function y=myfun(x, them, ym, wm)
            +y = wm.*( x(1)*exp(-x(2)*tm) - ym )
            +endfunction
            +// the simplest call
            +[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0)
            +// Press ENTER to continue
            +

            Example

            +

            Here we build up on the previous example by adding upper and lower bounds to the variables. +We add the following bounds to the problem specified above:

            +

            +

            //A simple non-linear least square example taken from leastsq default present in scilab
             function y=yth(t, x)
             y  = x(1)*exp(-x(2)*t)
            @@ -123,11 +152,15 @@ It has type "struct" and contains the following fields.
             function y=myfun(x, tm, ym, wm)
             y = wm.*( yth(tm, x) - ym )
             endfunction
            +lb = [-5 ,-5];
            +ub = [10, 10];
             // the simplest call
            -[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0)
            +[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0,lb,ub)
             // Press ENTER to continue
            -

            Examples

            +

            Example

            +

            In this example, we further enhance the functionality of lsqnonlin by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.

            +

            //A basic example taken from leastsq default present in scilab with gradient
             function y=yth(t, x)
             y  = x(1)*exp(-x(2)*t)
            @@ -147,12 +180,14 @@ It has type "struct" and contains the following fields.
             // in the first examples, we define the function fun and dfun
             // in scilab language
             function [y, dy]=myfun(x, tm, ym, wm)
            -y = wm.*( yth(tm, x) - ym )
            +y = wm.*( x(1)*exp(-x(2)*tm) - ym )
             v = wm.*exp(-x(2)*tm)
             dy = [v , -x(1)*tm.*v]
             endfunction
            +lb = [-5,-5];
            +ub = [10,10];
             options = list("GradObj", "on")
            -[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0,[],[],options)
            +[xopt,resnorm,residual,exitflag,output,lambda,gradient] = lsqnonlin(myfun,x0,lb,ub,options)

            Authors

            • Harpreet Singh
            @@ -167,7 +202,7 @@ It has type "struct" and contains the following fields.
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/lsqnonneg.html b/help/en_US/scilab_en_US_help/lsqnonneg.html index 5cd01df..f9783ad 100644 --- a/help/en_US/scilab_en_US_help/lsqnonneg.html +++ b/help/en_US/scilab_en_US_help/lsqnonneg.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > lsqnonneg + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > lsqnonneg

            lsqnonneg

            @@ -38,58 +38,63 @@

            Calling Sequence

            xopt = lsqnonneg(C,d)
            -xopt = lsqnonneg(C,d,param)
            +xopt = lsqnonneg(C,d,options)
             [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg( ... )
            -

            Parameters

            +

            Input Parameters

            C : -

            a matrix of double, represents the multiplier of the solution x in the expression C⋅x - d. Number of columns in C is equal to the number of elements in x.

            -
            d : -

            a vector of double, represents the additive constant term in the expression C⋅x - d. Number of elements in d is equal to the number of rows in C matrix.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A matrix of doubles, representing the multiplier of x in the expression C⋅x - d. The number of columns in C is equal to the number of elements in x.

            +
            d : +

            A vector of doubles, representing the additive constant term in the expression C⋅x - d. The number of elements in d is equal to the number of rows in C matrix.

            +
            options: +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            resnorm : -

            a double, objective value returned as the scalar value norm(C⋅x-d)^2.

            +

            A double, containing the objective value returned as a scalar value norm(C⋅x-d)^2.

            residual : -

            a vector of double, solution residuals returned as the vector d-C⋅x.

            +

            A vector of doubles, containing the solution residuals, returned as a vector d-C⋅x.

            exitflag : -

            The exit status. See below for details.

            +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            output : -

            The structure consist of statistics about the optimization. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            lambda : -

            The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

            +

            A structure, containing the Lagrange multipliers at the optimized point. See below for details.

            Description

            Solves nonnegative least-squares curve fitting problems specified by :

            -

            -

            The routine calls Ipopt for solving the nonnegative least-squares curve fitting problems, Ipopt is a library written in C++.

            -

            The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

            • Syntax : options= list("MaxIter", [---], "CpuTime", [---]);
            • -
            • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
            • -
            • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
            • -
            • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

            -

            The exitflag allows to know the status of the optimization which is given back by Ipopt. -

            • exitflag=0 : Optimal Solution Found
            • -
            • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • -
            • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
            • -
            • exitflag=3 : Stop at Tiny Step.
            • -
            • exitflag=4 : Solved To Acceptable Level.
            • -
            • exitflag=5 : Converged to a point of local infeasibility.

            -

            For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search
            • +

              +

              lsqlin calls Ipopt, an optimization library written in C++, to solve the nonnegative least-squares curve fitting problem.

              +

              The options should be defined as type "list" and consist of the following fields:

              +

              options= list("MaxIter", [---], "CpuTime", [---]);

              +

              • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
              • +
              • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.

              +

              The default values for the various items are given as:

              +

              options = list("MaxIter", [3000], "CpuTime", [600]);

              +

              The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

              • 0 : Optimal Solution Found
              • +
              • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
              • +
              • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
              • +
              • 3 : Stop at Tiny Step.
              • +
              • 4 : Solved To Acceptable Level.
              • +
              • 5 : Converged to a point of local infeasibility.

              +

              For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

              +

              The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

              • output.iterations: The number of iterations performed.
              • output.constrviolation: The max-norm of the constraint violation.

              -

              The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

              The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

              • lambda.lower: The Lagrange multipliers for the lower bound constraints.
              • lambda.upper: The Lagrange multipliers for the upper bound constraints.

            - -

            Examples

            -
            // A basic lsqnonneg problem
            +

            A few examples displaying the various functionalities of lsqnonneg have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            We begin with a simple objective function.

            +

            +

            +
            // Example 1: A basic lsqnonneg problem
             C = [1 1 1;
             1 1 0;
             0 1 1;
            @@ -102,6 +107,23 @@ It has type "struct" and contains the following fields.
             20;]
             [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
            +

            Example

            +

            In this example, we further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.

            +

            +
            // Example 2: A basic lsqnonneg problem with solver options.
            +C = [1 1 1;
            +1 1 0;
            +0 1 1;
            +1 0 0;
            +0 0 1]
            +d = [89;
            +67;
            +53;
            +35;
            +20;]
            +options = list("MaxIter", [5000], "CpuTime", [1000]);
            +[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d,options)
            +

            Authors

            • Harpreet Singh

            @@ -115,7 +137,7 @@ It has type "struct" and contains the following fields.
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/qpipopt.html b/help/en_US/scilab_en_US_help/qpipopt.html index f134d7a..b8491a9 100644 --- a/help/en_US/scilab_en_US_help/qpipopt.html +++ b/help/en_US/scilab_en_US_help/qpipopt.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > qpipopt + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > qpipopt

            qpipopt

            @@ -39,85 +39,90 @@

            Calling Sequence

            xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
             xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0)
            -xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param)
            +xopt = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,options)
             [xopt,fopt,exitflag,output,lamda] = qpipopt( ... )
            -

            Parameters

            +

            Input Parameters

            nbVar : -

            a double, number of variables

            +

            A double, denoting the number of variables

            nbCon : -

            a double, number of constraints

            +

            A double, denoting the number of constraints

            H : -

            a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.

            +

            A symmetric matrix of doubles, representing the Hessian of the quadratic problem.

            f : -

            a vector of double, represents coefficients of linear in the quadratic problem

            +

            A vector of doubles, representing coefficients of the linear terms in the quadratic problem.

            lb : -

            a vector of double, contains lower bounds of the variables.

            +

            A vector of doubles, containing the lower bounds of the variables.

            ub : -

            a vector of double, contains upper bounds of the variables.

            +

            A vector of doubles, containing the upper bounds of the variables.

            A : -

            a matrix of double, contains the constraint matrix conLB ≤ A⋅x ≤ conUB.

            +

            A matrix of doubles, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB.

            conLB : -

            a vector of double, contains lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            +

            A vector of doubles, containing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            conUB : -

            a vector of double, contains upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            +

            A vector of doubles, containing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            x0 : -

            a vector of double, contains initial guess of variables.

            -
            param : -

            a list containing the parameters to be set.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            +
            options : +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            fopt : -

            a double, the value of the function at x.

            +

            A double, containing the value of the function at xopt.

            exitflag : -

            The exit status. See below for details.

            +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            output : -

            The structure consist of statistics about the optimization. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            lambda : -

            The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

            +

            A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.

            Description

            Search the minimum of a constrained linear quadratic optimization problem specified by :

            -

            -

            The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.

            -

            The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

            • Syntax : options= list("MaxIter", [---], "CpuTime", [---]);
            • -
            • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
            • -
            • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
            • -
            • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

            -

            The exitflag allows to know the status of the optimization which is given back by Ipopt. -

            • exitflag=0 : Optimal Solution Found
            • -
            • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • -
            • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
            • -
            • exitflag=3 : Stop at Tiny Step.
            • -
            • exitflag=4 : Solved To Acceptable Level.
            • -
            • exitflag=5 : Converged to a point of local infeasibility.

            -

            For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search
            • +

              +

              qpipopt calls Ipopt, an optimization library written in C++, to solve the optimization problem.

              +

              Options

              +The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

              +

              options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);

              +

              The options should be defined as type "list" and consist of the following fields: +

              • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
              • +
              • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.

              +

              The default values for the various items are given as:

              +

              options = list("MaxIter", [3000], "CpuTime", [600]);

              +

              The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

              • 0 : Optimal Solution Found
              • +
              • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
              • +
              • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
              • +
              • 3 : Stop at Tiny Step.
              • +
              • 4 : Solved To Acceptable Level.
              • +
              • 5 : Converged to a point of local infeasibility.

              +

              For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

              +

              The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

              • output.iterations: The number of iterations performed.
              • output.constrviolation: The max-norm of the constraint violation.

              -

              The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

              The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

              • lambda.lower: The Lagrange multipliers for the lower bound constraints.
              • lambda.upper: The Lagrange multipliers for the upper bound constraints.
              • lambda.eqlin: The Lagrange multipliers for the linear equality constraints.
              • lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.

            - -

            Examples

            -
            //Ref : example 14 :
            -//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
            -// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2
            +

            A few examples displaying the various functionalities of qpipopt have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            We begin with a quadratic objective functions, subjected to two bounds for the functions, and two bounds for the constraints.

            +

            Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 1: Standard quadratic objective function
            +//(Ref : example 14)https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
            +// min. -8*x1^2 -16*x2^2 + x1 + 4*x2
             // such that
             //    x1 + x2 <= 5,
             //    x1 <= 3,
             //    x1 >= 0,
             //    x2 >= 0
            -H = [2 0
            -0 8];
            +H = [-16 0; 0 8];
             f = [-8; -16];
             A = [1 1;1 0];
             conUB = [5;3];
            @@ -129,24 +134,82 @@ It has type "struct" and contains the following fields.
             [xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
             //Press ENTER to continue
            -

            Examples

            -
            //Find x in R^6 such that:
            -A= [1,-1,1,0,3,1;
            --1,0,-3,-4,5,6;
            -2,5,3,0,1,0
            -0,1,0,1,2,-1;
            --1,0,2,1,1,0];
            -conLB=[1;2;3;-%inf;-%inf];
            -conUB = [1;2;3;-1;2.5];
            -lb=[-1000;-10000; 0; -1000; -1000; -1000];
            -ub=[10000; 100; 1.5; 100; 100; 1000];
            -//and minimize 0.5*x'⋅H⋅x + f'⋅x with
            -f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            -nbVar = 6;
            -nbCon = 5;
            -x0 = repmat(0,nbVar,1);
            -param = list("MaxIter", 300, "CpuTime", 100);
            -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param)
            +

            Example

            +

            We build on the previous example by providing a starting point, to facilitate the computation.

            +

            +

            +
            //Example 2: Standard quadratic objective function with starting points
            +//Find x in R^2 such that:
            +H = [-16 0; 0 8];
            +f = [-8; -16];
            +A = [1 1;1 0];
            +conUB = [5;3];
            +conLB = [-%inf; -%inf];
            +lb = [0; 0];
            +ub = [%inf; %inf];
            +nbVar = 2;
            +nbCon = 2;
            +x0 = [1 ;1];
            +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0)
            + +

            Example

            +

            We can further enhance the functionality of qpipopt by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.

            +

            +

            +
            //Example 3: Standard quadratic objective function with starting points and options.
            +H = [-16 0; 0 8];
            +f = [-8; -16];
            +A = [1 1;1 0];
            +conUB = [5;3];
            +conLB = [-%inf; -%inf];
            +lb = [0; 0];
            +ub = [%inf; %inf];
            +nbVar = 2;
            +nbCon = 2;
            +x0 = [1 ;1];
            +options = list("MaxIter", 300, "CpuTime", 100);
            +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,options)
            +

            Example

            +

            Infeasible Problems: Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 4: Infeasible Problem
            +//(Ref : example 14)https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
            +// min. -8*x1^2 -16*x2^2 + x1 + 4*x2
            +// such that
            +//    x1 + x2 <= 5,
            +//    x1 <= 3,
            +//    x1 >= 0,
            +//    x2 >= 0
            +H = [-16 0; 0 8];
            +f = [-8; -16];
            +A = [1 1;1 0]
            +conUB = [5;3];
            +conLB = [-%inf; -%inf];
            +lb = [4; 0];
            +ub = [%inf; %inf];
            +nbVar = 2;
            +nbCon = 2;
            +[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB)
            +//Press ENTER to continue
            + +

            Example

            +

            Unbounded Problems: Find x in R^2 such that it minimizes:

            +

            +

            +
            //Example 5: Unbounded Problem
            +//Find x in R^2 such that:
            +H = [-16 0; 0 8];
            +f = [-8; -16];
            +A = [-2 0;0 1];
            +conUB = [5;3];
            +conLB = [-%inf; -%inf];
            +lb = [0; 0];
            +ub = [%inf; %inf];
            +nbVar = 2;
            +nbCon = 2;
            +x0 = [1 ;1];
            +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0)

            Authors

            • Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
            @@ -161,7 +224,7 @@ It has type "struct" and contains the following fields.
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/qpipoptmat.html b/help/en_US/scilab_en_US_help/qpipoptmat.html index cd9a0ad..7aa50eb 100644 --- a/help/en_US/scilab_en_US_help/qpipoptmat.html +++ b/help/en_US/scilab_en_US_help/qpipoptmat.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > qpipoptmat + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > qpipoptmat

            qpipoptmat

            @@ -45,62 +45,64 @@ xopt = qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param) [xopt,fopt,exitflag,output,lamda] = qpipoptmat( ... )
            -

            Parameters

            +

            Input Parameters

            H : -

            a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.

            +

            A symmetric matrix of doubles, representing the Hessian of the quadratic problem.

            f : -

            a vector of double, represents coefficients of linear in the quadratic problem

            +

            A vector of doubles, representing coefficients of the linear terms in the quadratic problem.

            A : -

            a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            b : -

            a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A vector of doubles, related to 'A' and containing the the Right hand side equation of the linear inequality constraints of size (m X 1).

            Aeq : -

            a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            beq : -

            a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A vector of doubles, related to 'Aeq' and containing the the Right hand side equation of the linear equality constraints of size (m1 X 1).

            lb : -

            a vector of double, contains lower bounds of the variables.

            +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            ub : -

            a vector of double, contains upper bounds of the variables.

            +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            x0 : -

            a vector of double, contains initial guess of variables.

            +

            A vector of doubles, containing the starting values of variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            param : -

            a list containing the parameters to be set.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            fopt : -

            a double, the value of the function at x.

            +

            A double, containing the value of the function at xopt.

            exitflag : -

            The exit status. See below for details.

            +

            An integer, containing the flag which denotes the reason for termination of algorithm. See below for details.

            output : -

            The structure consist of statistics about the optimization. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            lambda : -

            The structure consist of the Lagrange multipliers at the solution of problem. See below for details.

            +

            A structure, containing the Lagrange multipliers of the lower bounds, upper bounds and constraints at the optimized point. See below for details.

            Description

            Search the minimum of a constrained linear quadratic optimization problem specified by :

            -

            -

            The routine calls Ipopt for solving the quadratic problem, Ipopt is a library written in C++.

            -

            The options allows the user to set various parameters of the Optimization problem. -It should be defined as type "list" and contains the following fields. -

            • Syntax : options= list("MaxIter", [---], "CpuTime", [---]);
            • -
            • MaxIter : a Scalar, containing the Maximum Number of Iteration that the solver should take.
            • -
            • CpuTime : a Scalar, containing the Maximum amount of CPU Time that the solver should take.
            • -
            • Default Values : options = list("MaxIter", [3000], "CpuTime", [600]);

            -

            The exitflag allows to know the status of the optimization which is given back by Ipopt. -

            • exitflag=0 : Optimal Solution Found
            • -
            • exitflag=1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
            • -
            • exitflag=2 : Maximum CPU Time exceeded. Output may not be optimal.
            • -
            • exitflag=3 : Stop at Tiny Step.
            • -
            • exitflag=4 : Solved To Acceptable Level.
            • -
            • exitflag=5 : Converged to a point of local infeasibility.

            -

            For more details on exitflag see the ipopt documentation, go to http://www.coin-or.org/Ipopt/documentation/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search
            • +

              +

              qpipoptmat calls Ipopt, an optimization library written in C++, to solve the optimization problem.

              +

              Options

              +

              The options allow the user to set various parameters of the Optimization problem. The syntax for the options is given by:

              +

              options= list("MaxIter", [---], "CpuTime", [---], "GradObj", ---, "Hessian", ---, "GradCon", ---);

              +

              The options should be defined as type "list" and consist of the following fields: +

              • MaxIter : A Scalar, specifying the maximum number of iterations that the solver should take.
              • +
              • CpuTime : A Scalar, specifying the maximum amount of CPU time in seconds that the solver should take.

              +

              The default values for the various items are given as:

              +

              options = list("MaxIter", [3000], "CpuTime", [600]);

              +

              The exitflag allows the user to know the status of the optimization which is returned by Ipopt. The values it can take and what they indicate is described below: +

              • 0 : Optimal Solution Found
              • +
              • 1 : Maximum Number of Iterations Exceeded. Output may not be optimal.
              • +
              • 2 : Maximum amount of CPU Time exceeded. Output may not be optimal.
              • +
              • 3 : Stop at Tiny Step.
              • +
              • 4 : Solved To Acceptable Level.
              • +
              • 5 : Converged to a point of local infeasibility.

              +

              For more details on exitflag, see the Ipopt documentation which can be found on http://www.coin-or.org/Ipopt/documentation/

              +

              The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

              • output.iterations: The number of iterations performed.
              • output.constrviolation: The max-norm of the constraint violation.

              -

              The lambda data structure contains the Lagrange multipliers at the end -of optimization. In the current version the values are returned only when the the solution is optimal. +

              The lambda data structure contains the Lagrange multipliers at the end of optimization. In the current version, the values are returned only when the the solution is optimal. It has type "struct" and contains the following fields.

              • lambda.lower: The Lagrange multipliers for the lower bound constraints.
              • lambda.upper: The Lagrange multipliers for the upper bound constraints.
              • @@ -108,42 +110,126 @@ It has type "struct" and contains the following fields.
              • lambda.ineqlin: The Lagrange multipliers for the linear inequality constraints.

            -

            Examples

            -
            //Ref : example 14 :
            -//https://www.me.utexas.edu/~jensen/ORMM/supplements/methods/nlpmethod/S2_quadratic.pdf
            -// min. -8*x1*x1 -16*x2*x2 + x1 + 4*x2
            -// such that
            -//    x1 + x2 <= 5,
            -//    x1 <= 3,
            -//    x1 >= 0,
            -//    x2 >= 0
            -H = [2 0
            -0 8];
            -f = [-8; -16];
            -A = [1 1;1 0];
            -b = [5;3];
            -lb = [0; 0];
            -ub = [%inf; %inf];
            -[xopt,fopt,exitflag,output,lambda] = qpipoptmat(H,f,A,b,[],[],lb,ub)
            -// Press ENTER to continue
            - -

            Examples

            -
            //Find x in R^6 such that:
            +
            +

            Example

            +

            Here we solve a simple objective function.

            +

            Find x in R^6 such that it minimizes:

            +

            +

            +
            //Example 1:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f)
            + +

            Example

            + We proceed to add simple linear inequality constraints. + +

            +

            +
            //Example 2:
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b)
            + +

            Example

            + Here we build up on the previous example by adding linear equality constraints. +We add the following constraints to the problem specified above: +

            +

            +
            //Example 3:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); 
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6;
            +2,5,3,0,1,0];
            +beq=[1; 2; 3];
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq)
            + +

            Example

            +

            In this example, we proceed to add the upper and lower bounds to the objective function.

            +

            +

            +
            //Example 4:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
             Aeq= [1,-1,1,0,3,1;
             -1,0,-3,-4,5,6;
             2,5,3,0,1,0];
             beq=[1; 2; 3];
            +//Variable bounds
            +lb=[-1000; -10000; 0; -1000; -1000; -1000];
            +ub=[10000; 100; 1.5; 100; 100; 1000];
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub)
            + +

            Example

            +

            In this example, we initialize the values of x to speed up the computation. We further enhance the functionality of qpipoptmat by setting input options.

            +

            +
            //Example 5:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            +//Inequality constraints
             A= [0,1,0,1,2,-1;
             -1,0,2,1,1,0];
             b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6;
            +2,5,3,0,1,0];
            +beq=[1; 2; 3];
            +//Variable bounds
             lb=[-1000; -10000; 0; -1000; -1000; -1000];
             ub=[10000; 100; 1.5; 100; 100; 1000];
            +//Initial guess and options
             x0 = repmat(0,6,1);
            -param = list("MaxIter", 300, "CpuTime", 100);
            -//and minimize 0.5*x'*H*x + f'*x with
            +options = list("MaxIter", 300, "CpuTime", 100);
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,options)
            + +

            Example

            +Infeasible Problems: Find x in R^6 such that it minimizes the following objective function under the given constraints: +

            +

            +
            //Example 6:
            +//Minimize 0.5*x'*H*x + f'*x with
             f=[1; 2; 3; 4; 5; 6]; H=eye(6,6);
            -[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq,lb,ub,x0,param)
            +//Inequality constraints +A= [0,1,0,1,2,-1; +-1,0,2,1,1,0]; +b = [-1; 2.5]; +//Equality constraints +Aeq= [0,1,0,1,2,-1; +-1,0,-3,-4,5,6]; +beq=[4; 2]; +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq)
            +

            Example

            +

            Unbounded Problems: Find x in R^6 such that it minimizes the objective function used above under the following constraints:

            +

            +

            +
            //Example 7:
            +//Minimize 0.5*x'*H*x + f'*x with
            +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); H(1,1) = -1;
            +//Inequality constraints
            +A= [0,1,0,1,2,-1;
            +-1,0,2,1,1,0];
            +b = [-1; 2.5];
            +//Equality constraints
            +Aeq= [1,-1,1,0,3,1;
            +-1,0,-3,-4,5,6];
            +beq=[1; 2];
            +[xopt,fopt,exitflag,output,lambda]=qpipoptmat(H,f,A,b,Aeq,beq)

            Authors

            • Keyur Joshi, Saikiran, Iswarya, Harpreet Singh

            @@ -157,7 +243,7 @@ It has type "struct" and contains the following fields.
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html b/help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html new file mode 100644 index 0000000..2c3f0b9 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_016165dcad2b2229387faee34442c3dd.html @@ -0,0 +1,285 @@ + + + + + + +
            + + + + +
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions + +

            +

            Symphony Native Functions

            + +
            + +
            + + + + + + +
            Report an issue
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html b/help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html new file mode 100644 index 0000000..5bfcab1 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_2122a46e06605359e022857633f38a15.html @@ -0,0 +1,358 @@ + + + + + + +
            + + + + +
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox + +

            +

            FOSSEE Optimization Toolbox

            +
            • fgoalattainSolves a multiobjective goal attainment problem
            • + + + + + +
            • fminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • fminconSolves a multi-variable constrainted optimization problem
            • + + + + + +
            • fminimaxSolves minimax constraint problem
            • + + + + + +
            • fminuncSolves a multi-variable unconstrainted optimization problem
            • + + + + + +
            • linprogSolves a linear programming problem.
            • + + + + + +
            • lsqlinSolves a linear quadratic problem.
            • + + + + + +
            • lsqnonlinSolves a non linear data fitting problems.
            • + + + + + +
            • lsqnonnegSolves nonnegative least-squares curve fitting problems.
            • + + + + + +
            • qpipoptSolves a linear quadratic problem.
            • + + + + + +
            • qpipoptmatSolves a linear quadratic problem.
            • + + + + + +
            • symphonySolves a mixed integer linear programming constrained optimization problem.
            • + + + + + +
            • symphonymatSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + +
            • Symphony Native Functions +
            +
            + +
            + + + + + + +
            Report an issue
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html b/help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html new file mode 100644 index 0000000..085dbf7 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_2f30ec7805b02b8760d8add3187208be.html @@ -0,0 +1,85 @@ + + + + + + +
            + + + + +
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox + +

            +

            FOSSEE Optimization Toolbox

            +
            • cbcintlinprogSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + + + + + +
            • intfminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • intfminconSolves a constrainted multi-variable mixed integer non linear programming problem
            • + + + + + +
            • intfminimaxSolves minimax constraint problem
            • + + + + + +
            • intfminuncSolves an unconstrainted multi-variable mixed integer non linear programming optimization problem
            • + + + + + +
            • intqpipoptSolves a linear quadratic problem.
            +
            + +
            + + + + + + +
            Report an issue
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html b/help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html new file mode 100644 index 0000000..2af72b0 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_44e1f57c5225357b5fe53cb5fad967e9.html @@ -0,0 +1,394 @@ + + + + + + +
            + + + + +
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox + +

            +

            FOSSEE Optimization Toolbox

            +
            • cbcintlinprogSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + + + + + +
            • fgoalattainSolves a multiobjective goal attainment problem
            • + + + + + +
            • fminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • fminconSolves a multi-variable constrainted optimization problem.
            • + + + + + +
            • fminimaxSolves minimax constraint problem
            • + + + + + +
            • fminuncSolves a multi-variable unconstrainted optimization problem
            • + + + + + +
            • intfminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • intfminconSolves a constrainted multi-variable mixed integer non linear programming problem
            • + + + + + +
            • intfminimaxSolves minimax constraint problem
            • + + + + + +
            • intfminuncSolves an unconstrainted multi-variable mixed integer non linear programming optimization problem
            • + + + + + +
            • intqpipoptSolves a linear quadratic problem.
            • + + + + + +
            • linprogSolves a linear programming problem.
            • + + + + + +
            • lsqlinSolves a linear quadratic problem.
            • + + + + + +
            • lsqnonlinSolves a non linear data fitting problems.
            • + + + + + +
            • lsqnonnegSolves nonnegative least-squares curve fitting problems.
            • + + + + + +
            • qpipoptSolves a linear quadratic problem.
            • + + + + + +
            • qpipoptmatSolves a linear quadratic problem.
            • + + + + + +
            • symphonySolves a mixed integer linear programming constrained optimization problem.
            • + + + + + +
            • symphonymatSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + +
            • Symphony Native Functions +
            +
            + +
            + + + + + + +
            Report an issue
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html b/help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html new file mode 100644 index 0000000..085dbf7 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_5216548269879268a26b5bc137b91f5d.html @@ -0,0 +1,85 @@ + + + + + + +
            + + + + +
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox + +

            +

            FOSSEE Optimization Toolbox

            +
            • cbcintlinprogSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + + + + + +
            • intfminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • intfminconSolves a constrainted multi-variable mixed integer non linear programming problem
            • + + + + + +
            • intfminimaxSolves minimax constraint problem
            • + + + + + +
            • intfminuncSolves an unconstrainted multi-variable mixed integer non linear programming optimization problem
            • + + + + + +
            • intqpipoptSolves a linear quadratic problem.
            +
            + +
            + + + + + + +
            Report an issue
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html b/help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html new file mode 100644 index 0000000..2416e2e --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_5fc7ef02a133896efbd190355314d3fc.html @@ -0,0 +1,285 @@ + + + + + + +
            + + + + +
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions + +

            +

            Symphony Native Functions

            + +
            + +
            + + + + + + +
            Report an issue
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html b/help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html new file mode 100644 index 0000000..f83b867 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_6c2e5edddf1b5b09c56de3bdc2fc0d64.html @@ -0,0 +1,285 @@ + + + + + + +
            + + + + +
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions + +

            +

            Symphony Native Functions

            + +
            + +
            + + + + + + +
            Report an issue
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html b/help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html new file mode 100644 index 0000000..b0bf4dd --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_7f9be39cf912aa1e283b946d86a6bd7c.html @@ -0,0 +1,357 @@ + + + + + + +
            + + + + +
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox + +

            +

            FOSSEE Optimization Toolbox

            +
            • fgoalattainSolves a multiobjective goal attainment problem
            • + + + + + +
            • fminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • fminconSolves a multi-variable constrainted optimization problem.
            • + + + + + +
            • fminimaxSolves minimax constraint problem
            • + + + + + +
            • fminuncSolves a multi-variable unconstrainted optimization problem
            • + + + + + +
            • linprogSolves a linear programming problem.
            • + + + + +
            • lsqlinSolves a linear quadratic problem.
            • + + + + + +
            • lsqnonlinSolves a non linear data fitting problems.
            • + + + + + +
            • lsqnonnegSolves nonnegative least-squares curve fitting problems.
            • + + + + + +
            • qpipoptSolves a linear quadratic problem.
            • + + + + + +
            • qpipoptmatSolves a linear quadratic problem.
            • + + + + + +
            • symphonySolves a mixed integer linear programming constrained optimization problem.
            • + + + + + +
            • symphonymatSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + +
            • Symphony Native Functions +
            +
            + +
            + + + + + + +
            Report an issue
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html b/help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html new file mode 100644 index 0000000..4bc31eb --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_8b595dffcf2928adea151d3ba6836faa.html @@ -0,0 +1,394 @@ + + + + + + +
            + + + + +
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox + +

            +

            FOSSEE Optimization Toolbox

            +
            • cbcintlinprogSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + + + + + +
            • fgoalattainSolves a multiobjective goal attainment problem
            • + + + + + +
            • fminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • fminconSolves a multi-variable constrainted optimization problem.
            • + + + + + +
            • fminimaxSolves minimax constraint problem
            • + + + + + +
            • fminuncSolves a multi-variable unconstrainted optimization problem
            • + + + + + +
            • intfminbndSolves a multi-variable optimization problem on a bounded interval
            • + + + + + +
            • intfminconSolves a constrainted multi-variable mixed integer non linear programming problem
            • + + + + + +
            • intfminimaxSolves minimax constraint problem
            • + + + + + +
            • intfminuncSolves an unconstrainted multi-variable mixed integer non linear programming optimization problem
            • + + + + + +
            • intqpipoptSolves a linear quadratic problem.
            • + + + + + +
            • linprogSolves a linear programming problem.
            • + + + + + +
            • lsqlinSolves a linear quadratic problem.
            • + + + + + +
            • lsqnonlinSolves a non linear data fitting problems.
            • + + + + + +
            • lsqnonnegSolves nonnegative least-squares curve fitting problems.
            • + + + + + +
            • qpipoptSolves a linear quadratic problem.
            • + + + + + +
            • qpipoptmatSolves a linear quadratic problem.
            • + + + + + +
            • symphonySolves a mixed integer linear programming constrained optimization problem.
            • + + + + + +
            • symphonymatSolves a mixed integer linear programming constrained optimization problem in intlinprog format.
            • + +
            • Symphony Native Functions +
            +
            + +
            + + + + + + +
            Report an issue
            + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html b/help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html new file mode 100644 index 0000000..c083a52 --- /dev/null +++ b/help/en_US/scilab_en_US_help/section_c78c9c5b46dbea583df3c010a77e5758.html @@ -0,0 +1,285 @@ + + + + + + +
            + + + + +
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + + + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions + +

            +

            Symphony Native Functions

            + +
            + +
            + + + + + + +
            Report an issue
            + << symphonymat + + + FOSSEE Optimization Toolbox + + + +
            +
            +
            + + diff --git a/help/en_US/scilab_en_US_help/sym_addConstr.html b/help/en_US/scilab_en_US_help/sym_addConstr.html index ca681d5..a210836 100644 --- a/help/en_US/scilab_en_US_help/sym_addConstr.html +++ b/help/en_US/scilab_en_US_help/sym_addConstr.html @@ -12,11 +12,11 @@
            - << Symphony Native Functions + << Symphony Native Functions - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_addConstr + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_addConstr

            sym_addConstr

            @@ -73,11 +73,11 @@
            Report an issue
            - << Symphony Native Functions + << Symphony Native Functions - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_addVar.html b/help/en_US/scilab_en_US_help/sym_addVar.html index f74db8c..9d91854 100644 --- a/help/en_US/scilab_en_US_help/sym_addVar.html +++ b/help/en_US/scilab_en_US_help/sym_addVar.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_addVar + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_addVar

            sym_addVar

            @@ -79,7 +79,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_close.html b/help/en_US/scilab_en_US_help/sym_close.html index c21dc6e..1da5faa 100644 --- a/help/en_US/scilab_en_US_help/sym_close.html +++ b/help/en_US/scilab_en_US_help/sym_close.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_close + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_close

            sym_close

            @@ -70,7 +70,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_deleteConstrs.html b/help/en_US/scilab_en_US_help/sym_deleteConstrs.html index 88a7b3d..fb040e6 100644 --- a/help/en_US/scilab_en_US_help/sym_deleteConstrs.html +++ b/help/en_US/scilab_en_US_help/sym_deleteConstrs.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_deleteConstrs + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_deleteConstrs

            sym_deleteConstrs

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_deleteVars.html b/help/en_US/scilab_en_US_help/sym_deleteVars.html index 77aaad6..e6317a6 100644 --- a/help/en_US/scilab_en_US_help/sym_deleteVars.html +++ b/help/en_US/scilab_en_US_help/sym_deleteVars.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_deleteVars + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_deleteVars

            sym_deleteVars

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getConstrActivity.html b/help/en_US/scilab_en_US_help/sym_getConstrActivity.html index cb1cb1c..56e4575 100644 --- a/help/en_US/scilab_en_US_help/sym_getConstrActivity.html +++ b/help/en_US/scilab_en_US_help/sym_getConstrActivity.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrActivity + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrActivity

            sym_getConstrActivity

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getConstrLower.html b/help/en_US/scilab_en_US_help/sym_getConstrLower.html index 929471f..a52f308 100644 --- a/help/en_US/scilab_en_US_help/sym_getConstrLower.html +++ b/help/en_US/scilab_en_US_help/sym_getConstrLower.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrLower + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrLower

            sym_getConstrLower

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getConstrRange.html b/help/en_US/scilab_en_US_help/sym_getConstrRange.html index 971a9d2..e8a3b61 100644 --- a/help/en_US/scilab_en_US_help/sym_getConstrRange.html +++ b/help/en_US/scilab_en_US_help/sym_getConstrRange.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrRange + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrRange

            sym_getConstrRange

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getConstrSense.html b/help/en_US/scilab_en_US_help/sym_getConstrSense.html index 0f49a90..8d01b48 100644 --- a/help/en_US/scilab_en_US_help/sym_getConstrSense.html +++ b/help/en_US/scilab_en_US_help/sym_getConstrSense.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrSense + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrSense

            sym_getConstrSense

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getConstrUpper.html b/help/en_US/scilab_en_US_help/sym_getConstrUpper.html index f40b107..2acc1f0 100644 --- a/help/en_US/scilab_en_US_help/sym_getConstrUpper.html +++ b/help/en_US/scilab_en_US_help/sym_getConstrUpper.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrUpper + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getConstrUpper

            sym_getConstrUpper

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getDblParam.html b/help/en_US/scilab_en_US_help/sym_getDblParam.html index 3e2d38b..449e918 100644 --- a/help/en_US/scilab_en_US_help/sym_getDblParam.html +++ b/help/en_US/scilab_en_US_help/sym_getDblParam.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getDblParam + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getDblParam

            sym_getDblParam

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getInfinity.html b/help/en_US/scilab_en_US_help/sym_getInfinity.html index bef10ab..2522ea5 100644 --- a/help/en_US/scilab_en_US_help/sym_getInfinity.html +++ b/help/en_US/scilab_en_US_help/sym_getInfinity.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getInfinity + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getInfinity

            sym_getInfinity

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getIntParam.html b/help/en_US/scilab_en_US_help/sym_getIntParam.html index 4fed98a..dbac8e6 100644 --- a/help/en_US/scilab_en_US_help/sym_getIntParam.html +++ b/help/en_US/scilab_en_US_help/sym_getIntParam.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getIntParam + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getIntParam

            sym_getIntParam

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getIterCount.html b/help/en_US/scilab_en_US_help/sym_getIterCount.html index 9b2775d..dd277d2 100644 --- a/help/en_US/scilab_en_US_help/sym_getIterCount.html +++ b/help/en_US/scilab_en_US_help/sym_getIterCount.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getIterCount + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getIterCount

            sym_getIterCount

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getMatrix.html b/help/en_US/scilab_en_US_help/sym_getMatrix.html index 60a81e1..c61aae2 100644 --- a/help/en_US/scilab_en_US_help/sym_getMatrix.html +++ b/help/en_US/scilab_en_US_help/sym_getMatrix.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getMatrix + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getMatrix

            sym_getMatrix

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getNumConstr.html b/help/en_US/scilab_en_US_help/sym_getNumConstr.html index 55187b3..8954e19 100644 --- a/help/en_US/scilab_en_US_help/sym_getNumConstr.html +++ b/help/en_US/scilab_en_US_help/sym_getNumConstr.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getNumConstr + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getNumConstr

            sym_getNumConstr

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getNumElements.html b/help/en_US/scilab_en_US_help/sym_getNumElements.html index 5d3d4a2..07cddc7 100644 --- a/help/en_US/scilab_en_US_help/sym_getNumElements.html +++ b/help/en_US/scilab_en_US_help/sym_getNumElements.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getNumElements + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getNumElements

            sym_getNumElements

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getNumVar.html b/help/en_US/scilab_en_US_help/sym_getNumVar.html index 8c4d1b7..7043edb 100644 --- a/help/en_US/scilab_en_US_help/sym_getNumVar.html +++ b/help/en_US/scilab_en_US_help/sym_getNumVar.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getNumVar + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getNumVar

            sym_getNumVar

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getObjCoeff.html b/help/en_US/scilab_en_US_help/sym_getObjCoeff.html index 61d0a50..8b196c1 100644 --- a/help/en_US/scilab_en_US_help/sym_getObjCoeff.html +++ b/help/en_US/scilab_en_US_help/sym_getObjCoeff.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getObjCoeff + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getObjCoeff

            sym_getObjCoeff

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getObjSense.html b/help/en_US/scilab_en_US_help/sym_getObjSense.html index 9d238be..0442b7a 100644 --- a/help/en_US/scilab_en_US_help/sym_getObjSense.html +++ b/help/en_US/scilab_en_US_help/sym_getObjSense.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getObjSense + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getObjSense

            sym_getObjSense

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getObjVal.html b/help/en_US/scilab_en_US_help/sym_getObjVal.html index f2c42e7..4d1d2d1 100644 --- a/help/en_US/scilab_en_US_help/sym_getObjVal.html +++ b/help/en_US/scilab_en_US_help/sym_getObjVal.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getObjVal + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getObjVal

            sym_getObjVal

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getPrimalBound.html b/help/en_US/scilab_en_US_help/sym_getPrimalBound.html index 20b8703..dca728e 100644 --- a/help/en_US/scilab_en_US_help/sym_getPrimalBound.html +++ b/help/en_US/scilab_en_US_help/sym_getPrimalBound.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getPrimalBound + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getPrimalBound

            sym_getPrimalBound

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getRhs.html b/help/en_US/scilab_en_US_help/sym_getRhs.html index e0a856b..6fce5ca 100644 --- a/help/en_US/scilab_en_US_help/sym_getRhs.html +++ b/help/en_US/scilab_en_US_help/sym_getRhs.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getRhs + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getRhs

            sym_getRhs

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getStatus.html b/help/en_US/scilab_en_US_help/sym_getStatus.html index c86bef7..1aada99 100644 --- a/help/en_US/scilab_en_US_help/sym_getStatus.html +++ b/help/en_US/scilab_en_US_help/sym_getStatus.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getStatus + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getStatus

            sym_getStatus

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getStrParam.html b/help/en_US/scilab_en_US_help/sym_getStrParam.html index 1d1c6f8..79280ce 100644 --- a/help/en_US/scilab_en_US_help/sym_getStrParam.html +++ b/help/en_US/scilab_en_US_help/sym_getStrParam.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getStrParam + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getStrParam

            sym_getStrParam

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getVarLower.html b/help/en_US/scilab_en_US_help/sym_getVarLower.html index 1027813..292180b 100644 --- a/help/en_US/scilab_en_US_help/sym_getVarLower.html +++ b/help/en_US/scilab_en_US_help/sym_getVarLower.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getVarLower + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getVarLower

            sym_getVarLower

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getVarSoln.html b/help/en_US/scilab_en_US_help/sym_getVarSoln.html index e11f68e..2fb84c7 100644 --- a/help/en_US/scilab_en_US_help/sym_getVarSoln.html +++ b/help/en_US/scilab_en_US_help/sym_getVarSoln.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getVarSoln + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getVarSoln

            sym_getVarSoln

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_getVarUpper.html b/help/en_US/scilab_en_US_help/sym_getVarUpper.html index 9125c66..89e2d82 100644 --- a/help/en_US/scilab_en_US_help/sym_getVarUpper.html +++ b/help/en_US/scilab_en_US_help/sym_getVarUpper.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getVarUpper + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_getVarUpper

            sym_getVarUpper

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isAbandoned.html b/help/en_US/scilab_en_US_help/sym_isAbandoned.html index fa75c3e..699cdea 100644 --- a/help/en_US/scilab_en_US_help/sym_isAbandoned.html +++ b/help/en_US/scilab_en_US_help/sym_isAbandoned.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isAbandoned + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isAbandoned

            sym_isAbandoned

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isBinary.html b/help/en_US/scilab_en_US_help/sym_isBinary.html index 946ec7e..4dad739 100644 --- a/help/en_US/scilab_en_US_help/sym_isBinary.html +++ b/help/en_US/scilab_en_US_help/sym_isBinary.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isBinary + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isBinary

            sym_isBinary

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isContinuous.html b/help/en_US/scilab_en_US_help/sym_isContinuous.html index 1ba5429..5a5bfa9 100644 --- a/help/en_US/scilab_en_US_help/sym_isContinuous.html +++ b/help/en_US/scilab_en_US_help/sym_isContinuous.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isContinuous + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isContinuous

            sym_isContinuous

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isEnvActive.html b/help/en_US/scilab_en_US_help/sym_isEnvActive.html index e80859d..9a05f88 100644 --- a/help/en_US/scilab_en_US_help/sym_isEnvActive.html +++ b/help/en_US/scilab_en_US_help/sym_isEnvActive.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isEnvActive + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isEnvActive

            sym_isEnvActive

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isInfeasible.html b/help/en_US/scilab_en_US_help/sym_isInfeasible.html index f657cca..14f4a7c 100644 --- a/help/en_US/scilab_en_US_help/sym_isInfeasible.html +++ b/help/en_US/scilab_en_US_help/sym_isInfeasible.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isInfeasible + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isInfeasible

            sym_isInfeasible

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isInteger.html b/help/en_US/scilab_en_US_help/sym_isInteger.html index 31c9707..5552613 100644 --- a/help/en_US/scilab_en_US_help/sym_isInteger.html +++ b/help/en_US/scilab_en_US_help/sym_isInteger.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isInteger + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isInteger

            sym_isInteger

            @@ -63,7 +63,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html b/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html index d10bf5b..6796407 100644 --- a/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html +++ b/help/en_US/scilab_en_US_help/sym_isIterLimitReached.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isIterLimitReached + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isIterLimitReached

            sym_isIterLimitReached

            @@ -70,7 +70,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isOptimal.html b/help/en_US/scilab_en_US_help/sym_isOptimal.html index 9db45b0..cefc563 100644 --- a/help/en_US/scilab_en_US_help/sym_isOptimal.html +++ b/help/en_US/scilab_en_US_help/sym_isOptimal.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isOptimal + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isOptimal

            sym_isOptimal

            @@ -70,7 +70,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html b/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html index 1f24750..8f00f6b 100644 --- a/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html +++ b/help/en_US/scilab_en_US_help/sym_isTargetGapAchieved.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isTargetGapAchieved + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isTargetGapAchieved

            sym_isTargetGapAchieved

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html b/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html index bac9d72..a17ee68 100644 --- a/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html +++ b/help/en_US/scilab_en_US_help/sym_isTimeLimitReached.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isTimeLimitReached + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_isTimeLimitReached

            sym_isTimeLimitReached

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_loadMPS.html b/help/en_US/scilab_en_US_help/sym_loadMPS.html index 40920b0..fcfc6d7 100644 --- a/help/en_US/scilab_en_US_help/sym_loadMPS.html +++ b/help/en_US/scilab_en_US_help/sym_loadMPS.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_loadMPS + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_loadMPS

            sym_loadMPS

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_loadProblem.html b/help/en_US/scilab_en_US_help/sym_loadProblem.html index 51ef7a1..63ea934 100644 --- a/help/en_US/scilab_en_US_help/sym_loadProblem.html +++ b/help/en_US/scilab_en_US_help/sym_loadProblem.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_loadProblem + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_loadProblem

            sym_loadProblem

            @@ -88,7 +88,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html b/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html index be22b57..40e106e 100644 --- a/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html +++ b/help/en_US/scilab_en_US_help/sym_loadProblemBasic.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_loadProblemBasic + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_loadProblemBasic

            sym_loadProblemBasic

            @@ -89,7 +89,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_open.html b/help/en_US/scilab_en_US_help/sym_open.html index 05eb30a..cbc7836 100644 --- a/help/en_US/scilab_en_US_help/sym_open.html +++ b/help/en_US/scilab_en_US_help/sym_open.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_open + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_open

            sym_open

            @@ -70,7 +70,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_resetParams.html b/help/en_US/scilab_en_US_help/sym_resetParams.html index 60e9a7f..55d9bb9 100644 --- a/help/en_US/scilab_en_US_help/sym_resetParams.html +++ b/help/en_US/scilab_en_US_help/sym_resetParams.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_resetParams + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_resetParams

            sym_resetParams

            @@ -66,7 +66,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setConstrLower.html b/help/en_US/scilab_en_US_help/sym_setConstrLower.html index 5821391..86d6f6f 100644 --- a/help/en_US/scilab_en_US_help/sym_setConstrLower.html +++ b/help/en_US/scilab_en_US_help/sym_setConstrLower.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setConstrLower + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setConstrLower

            sym_setConstrLower

            @@ -71,7 +71,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setConstrType.html b/help/en_US/scilab_en_US_help/sym_setConstrType.html index e10c1b7..89eae4d 100644 --- a/help/en_US/scilab_en_US_help/sym_setConstrType.html +++ b/help/en_US/scilab_en_US_help/sym_setConstrType.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setConstrType + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setConstrType

            sym_setConstrType

            @@ -77,7 +77,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setConstrUpper.html b/help/en_US/scilab_en_US_help/sym_setConstrUpper.html index 327360c..9332a13 100644 --- a/help/en_US/scilab_en_US_help/sym_setConstrUpper.html +++ b/help/en_US/scilab_en_US_help/sym_setConstrUpper.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setConstrUpper + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setConstrUpper

            sym_setConstrUpper

            @@ -71,7 +71,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setContinuous.html b/help/en_US/scilab_en_US_help/sym_setContinuous.html index 260c828..78a9565 100644 --- a/help/en_US/scilab_en_US_help/sym_setContinuous.html +++ b/help/en_US/scilab_en_US_help/sym_setContinuous.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setContinuous + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setContinuous

            sym_setContinuous

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setDblParam.html b/help/en_US/scilab_en_US_help/sym_setDblParam.html index 79bea38..45edee5 100644 --- a/help/en_US/scilab_en_US_help/sym_setDblParam.html +++ b/help/en_US/scilab_en_US_help/sym_setDblParam.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setDblParam + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setDblParam

            sym_setDblParam

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setIntParam.html b/help/en_US/scilab_en_US_help/sym_setIntParam.html index 085cd2d..852b5c9 100644 --- a/help/en_US/scilab_en_US_help/sym_setIntParam.html +++ b/help/en_US/scilab_en_US_help/sym_setIntParam.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setIntParam + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setIntParam

            sym_setIntParam

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setInteger.html b/help/en_US/scilab_en_US_help/sym_setInteger.html index 9ace0fa..f8e3859 100644 --- a/help/en_US/scilab_en_US_help/sym_setInteger.html +++ b/help/en_US/scilab_en_US_help/sym_setInteger.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setInteger + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setInteger

            sym_setInteger

            @@ -67,7 +67,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setObjCoeff.html b/help/en_US/scilab_en_US_help/sym_setObjCoeff.html index 8bb0771..93f87ba 100644 --- a/help/en_US/scilab_en_US_help/sym_setObjCoeff.html +++ b/help/en_US/scilab_en_US_help/sym_setObjCoeff.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setObjCoeff + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setObjCoeff

            sym_setObjCoeff

            @@ -71,7 +71,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setObjSense.html b/help/en_US/scilab_en_US_help/sym_setObjSense.html index a85340e..e296d97 100644 --- a/help/en_US/scilab_en_US_help/sym_setObjSense.html +++ b/help/en_US/scilab_en_US_help/sym_setObjSense.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setObjSense + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setObjSense

            sym_setObjSense

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setPrimalBound.html b/help/en_US/scilab_en_US_help/sym_setPrimalBound.html index 4e5fda2..b6786d3 100644 --- a/help/en_US/scilab_en_US_help/sym_setPrimalBound.html +++ b/help/en_US/scilab_en_US_help/sym_setPrimalBound.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setPrimalBound + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setPrimalBound

            sym_setPrimalBound

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setStrParam.html b/help/en_US/scilab_en_US_help/sym_setStrParam.html index 2b5ff96..eecf5af 100644 --- a/help/en_US/scilab_en_US_help/sym_setStrParam.html +++ b/help/en_US/scilab_en_US_help/sym_setStrParam.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setStrParam + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setStrParam

            sym_setStrParam

            @@ -69,7 +69,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setVarLower.html b/help/en_US/scilab_en_US_help/sym_setVarLower.html index 7d24dfe..ad3f9fb 100644 --- a/help/en_US/scilab_en_US_help/sym_setVarLower.html +++ b/help/en_US/scilab_en_US_help/sym_setVarLower.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setVarLower + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setVarLower

            sym_setVarLower

            @@ -71,7 +71,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setVarSoln.html b/help/en_US/scilab_en_US_help/sym_setVarSoln.html index f70f048..072b103 100644 --- a/help/en_US/scilab_en_US_help/sym_setVarSoln.html +++ b/help/en_US/scilab_en_US_help/sym_setVarSoln.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setVarSoln + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setVarSoln

            sym_setVarSoln

            @@ -70,7 +70,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_setVarUpper.html b/help/en_US/scilab_en_US_help/sym_setVarUpper.html index 40bf06d..3c89ae5 100644 --- a/help/en_US/scilab_en_US_help/sym_setVarUpper.html +++ b/help/en_US/scilab_en_US_help/sym_setVarUpper.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setVarUpper + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_setVarUpper

            sym_setVarUpper

            @@ -71,7 +71,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/sym_solve.html b/help/en_US/scilab_en_US_help/sym_solve.html index 1d603f5..b5ebe94 100644 --- a/help/en_US/scilab_en_US_help/sym_solve.html +++ b/help/en_US/scilab_en_US_help/sym_solve.html @@ -16,7 +16,7 @@ - Symphony Native Functions + Symphony Native Functions @@ -28,7 +28,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_solve + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > Symphony Native Functions > sym_solve

            sym_solve

            @@ -68,7 +68,7 @@
            - Symphony Native Functions + Symphony Native Functions diff --git a/help/en_US/scilab_en_US_help/symphony.html b/help/en_US/scilab_en_US_help/symphony.html index 4b7eaba..7f699cc 100644 --- a/help/en_US/scilab_en_US_help/symphony.html +++ b/help/en_US/scilab_en_US_help/symphony.html @@ -16,7 +16,7 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > symphony + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > symphony

            symphony

            @@ -42,54 +42,67 @@ xopt = symphony(nbVar,nbCon,c,isInt,lb,ub,A,conLB,conUB,objSense,options) [xopt,fopt,status,output] = symphony( ... )
            -

            Parameters

            +

            Input Parameters

            nbVar : -

            a double, number of variables.

            +

            A double, representing the number of variables.

            nbCon : -

            a double, number of constraints.

            +

            A double, representing the number of constraints.

            c : -

            a vector of double, represents coefficients of the variables in the objective.

            +

            A vector of doubles, representing the coefficients of the variables in the objective.

            isInt : -

            a vector of boolean, represents wether a variable is constrained to be an integer.

            +

            A vector of booleans, representing whether a variable is constrained to be an integer.

            lb : -

            a vector of double, represents lower bounds of the variables.

            +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            ub : -

            a vector of double, represents upper bounds of the variables.

            +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            A : -

            a matrix of double, represents matrix representing the constraint matrix conLB ≤ A⋅x ≤ conUB.

            +

            A matrix of double, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB.

            conLB : -

            a vector of double, represents lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            +

            A vector of double, representing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            conUB : -

            a vector of double, represents upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            +

            A vector of double, representing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB.

            objSense :

            The sense (maximization/minimization) of the objective. Use 1(sym_minimize ) or -1 (sym_maximize) here.

            options : -

            a list containing the parameters to be set.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            fopt : -

            a double, the value of the function at x.

            -
            status : -

            status flag returned from symphony.See below for details.

            +

            A double, containing the value of the function at x.

            +
            status : +

            The status flag returned from symphony. See below for details.

            output : -

            The output data structure contains detailed information about the optimization process. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            Description

            -

            Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :

            -

            -

            The routine calls SYMPHONY written in C by gateway files for the actual computation.

            -

            The status allows to know the status of the optimization which is given back by Ipopt. -

            • status=227 : Optimal Solution Found
            • -
            • status=228 : Maximum CPU Time exceeded.
            • -
            • status=229 : Maximum Number of Node Limit Exceeded.
            • -
            • status=230 : Maximum Number of Iterations Limit Exceeded.

            -

            For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search

            +

            Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by:

            +

            +

            The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation.

            +

            Options

            +The options should be defined as type "list" and consist of over a hundred fields, the most important ones of which have been detailed here:

            +

            • node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution.
            • +
            • time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take.
            • +
            • gap_limit : A scalar, representing the target gap limit allowed for solution.
            • +
            • granularity : A scalar, “the minimum difference between two distinct objective function values
            • + +
            • node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take.
            • +
            • prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance.
            • +
            • do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not.

            +

            The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below: +

            • 227 : Optimal Solution Found
            • +
            • 228 : Maximum CPU Time exceeded.
            • +
            • 229 : Maximum Number of Node Limit Exceeded.
            • +
            • 230 : Maximum Number of Iterations Limit Exceeded.

            +

            For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/

            +

            The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

            • output.iterations: The number of iterations performed.

            -

            Examples

            +

            A few examples displaying the various functionalities of symphony have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            //Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43.
             // Objective function
             c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            @@ -109,12 +122,43 @@ It has type "struct" and contains the following fields.
             isInt = [repmat(%t,1,4) repmat(%f,1,4)];
             xopt = [1 1 0 1 7.25 0 0.25 3.5]
             fopt = [8495]
            +options = list("time_limit", 25);
            +// Calling Symphony
            +[x,f,status,output] = symphony(8,3,c,isInt,lb,ub,A,conlb,conub,1,options);
            +// Press ENTER to continue
            + +

            Example

            +

            Here we provide the sense (maximization/minimization) of the objective and show how we can further enhance the functionality of symphony by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.

            +

            +
            //Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43.
            +// Objective function
            +c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +// Lower Bound of variable
            +lb = repmat(0,8,1);
            +// Upper Bound of variables
            +ub = [repmat(1,4,1);repmat(%inf,4,1)];
            +// Constraint Matrix
            +A = [5,3,4,6,1,1,1,1;
            +5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
            +5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
            +// Lower Bound of constraints
            +conlb = [ 25; 1.25; 1.25]
            +// Upper Bound of constraints
            +conub = [ 25; 1.25; 1.25]
            +// Row Matrix for telling symphony that the is integer or not
            +isInt = [repmat(%t,1,4) repmat(%f,1,4)];
            +xopt = [1 1 0 1 7.25 0 0.25 3.5]
            +fopt = [8495]
            +options = list("time_limit", 25);
             // Calling Symphony
            -[x,f,status,output] = symphony(8,3,c,isInt,lb,ub,A,conlb,conub,1)
            +[x,f,status,output] = symphony(8,3,c,isInt,lb,ub,A,conlb,conub,1,options);
             // Press ENTER to continue
            -

            Examples

            -
            // An advanced case where we set some options in symphony
            +

            Example

            +

            An advanced example for Symphony.

            +

            +

            +
            // Example 3:
             // This problem is taken from
             // P.C.Chu and J.E.Beasley
             // "A genetic algorithm for the multidimensional knapsack problem",
            @@ -210,7 +254,7 @@ It has type "struct" and contains the following fields.
             
                   
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox diff --git a/help/en_US/scilab_en_US_help/symphonymat.html b/help/en_US/scilab_en_US_help/symphonymat.html index 58e5070..4e68eda 100644 --- a/help/en_US/scilab_en_US_help/symphonymat.html +++ b/help/en_US/scilab_en_US_help/symphonymat.html @@ -16,11 +16,11 @@ - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox - Symphony Native Functions >> + Symphony Native Functions >>
            @@ -29,7 +29,7 @@ - FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > symphonymat + FOSSEE Optimization Toolbox >> FOSSEE Optimization Toolbox > symphonymat

            symphonymat

            @@ -43,148 +43,204 @@ xopt = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub,options) [xopt,fopt,status,output] = symphonymat( ... )
            -

            Parameters

            +

            Input Parameters

            c : -

            a vector of double, contains coefficients of the variables in the objective

            +

            A vector of doubles, containing the coefficients of the variables in the objective function.

            intcon : -

            Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.

            +

            A vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 to n where n is the number of variable.

            A : -

            a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints.

            b : -

            a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b.

            +

            A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1).

            Aeq : -

            a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints.

            beq : -

            a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq.

            +

            A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1).

            lb : -

            Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.

            +

            A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            ub : -

            Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.

            +

            A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables.

            options : -

            a list containing the parameters to be set.

            -
            xopt : -

            a vector of double, the computed solution of the optimization problem.

            +

            A list, containing the option for user to specify. See below for details.

            +

            Outputs

            +
            xopt : +

            A vector of doubles, containing the computed solution of the optimization problem.

            fopt : -

            a double, the value of the function at x.

            +

            A double, containing the value of the function at x.

            status : -

            status flag returned from symphony. See below for details.

            +

            The status flag returned from symphony. See below for details.

            output : -

            The output data structure contains detailed information about the optimization process. See below for details.

            +

            A structure, containing the information about the optimization. See below for details.

            Description

            Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by :

            -

            -

            The routine calls SYMPHONY written in C by gateway files for the actual computation.

            -

            The status allows to know the status of the optimization which is given back by Ipopt. -

            • status=227 : Optimal Solution Found
            • -
            • status=228 : Maximum CPU Time exceeded.
            • -
            • status=229 : Maximum Number of Node Limit Exceeded.
            • -
            • status=230 : Maximum Number of Iterations Limit Exceeded.

            -

            For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/

            -

            The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. -

            • output.iterations: The number of iterations performed during the search

            +

            +

            The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation.

            +

            Options

            +The options should be defined as type "list" and consist of over a hundred fields, the most important ones of which have been detailed here:

            +

            • node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution.
            • +
            • time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take.
            • +
            • gap_limit : A scalar, representing the target gap limit allowed for solution.
            • +
            • granularity : A scalar, “the minimum difference between two distinct objective function values
            • + +
            • node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take.
            • +
            • prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance.
            • +
            • do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not.

            +

            The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below: +

            • 227 : Optimal Solution Found
            • +
            • 228 : Maximum CPU Time exceeded.
            • +
            • 229 : Maximum Number of Node Limit Exceeded.
            • +
            • 230 : Maximum Number of Iterations Limit Exceeded.

            +

            For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/

            +

            The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. +

            • output.iterations: The number of iterations performed.

            -

            Examples

            -
            // Objective function
            -// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43.
            +

            Example

            +

            Here we solve a simple objective function, subjected to three linear inequality constraints.

            +

            Find x in R^8 such that it minimizes:

            +

            +

            +
            // Example 1:
            +// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
            +// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
            +c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
            +    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
            +    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
            +b = [100 ,205, 249 ];
            +//Defining the integer constraints
            +intcon = [1 2 3 4];
            +// Calling Symphony
            +[x,f,status,output] = symphonymat(c,intcon,A,b)
            +// Press ENTER to continue
            +

            A few examples displaying the various functionalities of symphonymat have been provided below. You will find a series of problems and the appropriate code snippets to solve them.

            +

            Example

            +

            Here we build up on the previous example by adding upper and lower bounds to the variables. +We add the following bounds to the problem specified above:

            +

            +
            // Example 2:
            +// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
            +// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
            +  c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +  //Inequality constraints
            +  A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
            +      1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
            +      1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
            +  b = [100 ,205, 249 ];
            +
            +  // Lower Bound of variable
            +lb = repmat(0,1,8);
            +// Upper Bound of variables
            +ub = [repmat(1,1,4) repmat(%inf,1,4)];
            +  //Integer Constraints
            +  intcon = [1 2 3 4];
            +  // Calling Symphony
            +  [x,f,status,output] = symphonymat(c,intcon,A,b,[],[],lb,ub)
            +// Press ENTER to continue
            + +

            Example

            +

            In this example, we proceed to add the linear equality constraints to the objective function.

            + +

            +
            // Example 3:
            +// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
            +// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
             c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +//Inequality constraints
            +A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
            +    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
            +    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
            +b = [100 ,205, 249 ];
             // Lower Bound of variable
             lb = repmat(0,1,8);
             // Upper Bound of variables
             ub = [repmat(1,1,4) repmat(%inf,1,4)];
            -// Constraint Matrix
            +// Equality Constraints
             Aeq = [5,3,4,6,1,1,1,1;
             5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
             5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
            -beq = [ 25, 1.25, 1.25]
            +beq = [ 25, 1.25, 1.25];
            +  //Integer Constraints
             intcon = [1 2 3 4];
             // Calling Symphony
            -[x,f,status,output] = symphonymat(c,intcon,[],[],Aeq,beq,lb,ub)
            +[x,f,status,output] = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub)
             // Press ENTER to continue
            -

            Examples

            -
            // An advanced case where we set some options in symphony
            -// This problem is taken from
            -// P.C.Chu and J.E.Beasley
            -// "A genetic algorithm for the multidimensional knapsack problem",
            -// Journal of Heuristics, vol. 4, 1998, pp63-86.
            -// The problem to be solved is:
            -// Max  sum{j=1,...,n} p(j)x(j)
            -// st   sum{j=1,...,n} r(i,j)x(j) <= b(i)       i=1,...,m
            -//                     x(j)=0 or 1
            -// The function to be maximize i.e. P(j)
            -c = -1*[   504 803 667 1103 834 585 811 856 690 832 846 813 868 793 ..
            -825 1002 860 615 540 797 616 660 707 866 647 746 1006 608 ..
            -877 900 573 788 484 853 942 630 591 630 640 1169 932 1034 ..
            -957 798 669 625 467 1051 552 717 654 388 559 555 1104 783 ..
            -959 668 507 855 986 831 821 825 868 852 832 828 799 686 ..
            -510 671 575 740 510 675 996 636 826 1022 1140 654 909 799 ..
            -1162 653 814 625 599 476 767 954 906 904 649 873 565 853 1008 632]';
            -//Constraint Matrix
            -A = [   //Constraint 1
            -42 41 523 215 819 551 69 193 582 375 367 478 162 898 ..
            -550 553 298 577 493 183 260 224 852 394 958 282 402 604 ..
            -164 308 218 61 273 772 191 117 276 877 415 873 902 465 ..
            -320 870 244 781 86 622 665 155 680 101 665 227 597 354 ..
            -597 79 162 998 849 136 112 751 735 884 71 449 266 420 ..
            -797 945 746 46 44 545 882 72 383 714 987 183 731 301 ..
            -718 91 109 567 708 507 983 808 766 615 554 282 995 946 651 298;
            -//Constraint 2
            -509 883 229 569 706 639 114 727 491 481 681 948 687 941 ..
            -350 253 573 40 124 384 660 951 739 329 146 593 658 816 ..
            -638 717 779 289 430 851 937 289 159 260 930 248 656 833 ..
            -892 60 278 741 297 967 86 249 354 614 836 290 893 857 ..
            -158 869 206 504 799 758 431 580 780 788 583 641 32 653 ..
            -252 709 129 368 440 314 287 854 460 594 512 239 719 751 ..
            -708 670 269 832 137 356 960 651 398 893 407 477 552 805 881 850;
            -//Constraint 3
            -806 361 199 781 596 669 957 358 259 888 319 751 275 177 ..
            -883 749 229 265 282 694 819 77 190 551 140 442 867 283 ..
            -137 359 445 58 440 192 485 744 844 969 50 833 57 877 ..
            -482 732 968 113 486 710 439 747 174 260 877 474 841 422 ..
            -280 684 330 910 791 322 404 403 519 148 948 414 894 147 ..
            -73 297 97 651 380 67 582 973 143 732 624 518 847 113 ..
            -382 97 905 398 859 4 142 110 11 213 398 173 106 331 254 447 ;
            -//Constraint 4
            -404 197 817 1000 44 307 39 659 46 334 448 599 931 776 ..
            -263 980 807 378 278 841 700 210 542 636 388 129 203 110 ..
            -817 502 657 804 662 989 585 645 113 436 610 948 919 115 ..
            -967 13 445 449 740 592 327 167 368 335 179 909 825 614 ..
            -987 350 179 415 821 525 774 283 427 275 659 392 73 896 ..
            -68 982 697 421 246 672 649 731 191 514 983 886 95 846 ..
            -689 206 417 14 735 267 822 977 302 687 118 990 323 993 525 322;
            -//Constrain 5
            -475 36 287 577 45 700 803 654 196 844 657 387 518 143 ..
            -515 335 942 701 332 803 265 922 908 139 995 845 487 100 ..
            -447 653 649 738 424 475 425 926 795 47 136 801 904 740 ..
            -768 460 76 660 500 915 897 25 716 557 72 696 653 933 ..
            -420 582 810 861 758 647 237 631 271 91 75 756 409 440 ..
            -483 336 765 637 981 980 202 35 594 689 602 76 767 693 ..
            -893 160 785 311 417 748 375 362 617 553 474 915 457 261 350 635 ;
            -];
            -nbVar = size(c,1)
            -b=[11927 13727 11551 13056 13460 ];
            -// Lower Bound of variables
            -lb = repmat(0,1,nbVar)
            +

            Example

            +

            In this example, we further enhance the functionality of symphonymat by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation.

            + +

            +
            // Example 4:
            +// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
            +// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
            +c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +//Inequality constraints
            +A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
            +    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
            +    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ];
            +b = [100 ,205, 249 ];
            +// Lower Bound of variable
            +lb = repmat(0,1,8);
             // Upper Bound of variables
            -ub = repmat(1,1,nbVar)
            -// Lower Bound of constrains
            -intcon = [];
            -for i = 1:nbVar
            -intcon = [intcon i];
            -end
            +ub = [repmat(1,1,4) repmat(%inf,1,4)];
            +// Equality Constraints
            +Aeq = [5,3,4,6,1,1,1,1;
            +5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
            +5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
            +beq = [ 25, 1.25, 1.25];
            +  //Integer Constraints
            +intcon = [1 2 3 4];
            +//Options
             options = list("time_limit", 25);
            -// The expected solution :
            -// Output variables
            -xopt = [0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 ..
            -0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 ..
            -0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0]
            -// Optimal value
            -fopt = [ -24381 ]
             // Calling Symphony
            -[x,f,status,output] = symphonymat(c,intcon,A,b,[],[],lb,ub,options);
            +[x,f,status,output] = symphonymat(c,intcon,A,b,Aeq,beq,lb,ub) +// Press ENTER to continue
            + +

            Example

            +

            Primal Infeasible Problems: Find x in R^8 such that it minimizes:

            +

            Find x in R^8 such that it minimizes:

            +

            +
            // Example 5:
            +// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer 
            +// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
            +c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +//Inequality constraints 
            +A = [6,4.25, 5.5, 7.75, 3, 3.25, 3.5,3.75; 
            +    1.25,1.37,1.7,1.93,2.08,2.32,2.56,2.78;  
            +    1.15,1.34,1.66,1.99,2.06,2.32,2.58,2.84 ]; 
            +b = [26.333 ,3.916 ,5.249 ];
            +  //Integer Constraints
            +intcon = [1 2 3 4];
            + 
            +// Calling Symphony
            + 
            +[x,f,status,output] = symphonymat(c,intcon,A,b)
            +// Press ENTER to continue
            + +

            Example

            +

            Unbounded Problems. Find x in R^8 such that it minimizes:

            +

            +
            // Example 6:
            +// Reference: Westerberg, Carl-Henrik, Bengt Bjorklund, and Eskil Hultman. "An application of mixed integer
            +// programming in a Swedish steel mill." Interfaces 7, no. 2 (1977): 39-43. Modified acc. to requirements.
            +c = [350*5,330*3,310*4,280*6,500,450,400,100]';
            +//Inequality constraints
            +A = [];
            +b = [];
            +// Equality Constraints
            +Aeq = [5,3,4,6,1,1,1,1;
            +5*0.05,3*0.04,4*0.05,6*0.03,0.08,0.07,0.06,0.03;
            +5*0.03,3*0.03,4*0.04,6*0.04,0.06,0.07,0.08,0.09;]
            +beq = [ 25, 1.25, 1.25];
            +  //Integer Constraints
            +intcon = [1 2 3 4];
            +// Calling Symphony
            +[x,f,status,output] = symphonymat(c,intcon,A,b,Aeq,beq)
            +// Press ENTER to continue
            + +

            Authors

            • Keyur Joshi, Saikiran, Iswarya, Harpreet Singh
            @@ -199,11 +255,11 @@ It has type "struct" and contains the following fields.
            - FOSSEE Optimization Toolbox + FOSSEE Optimization Toolbox - Symphony Native Functions >> + Symphony Native Functions >>
            diff --git a/help/en_US/symphony.xml b/help/en_US/symphony.xml index 692d4ad..371e60e 100644 --- a/help/en_US/symphony.xml +++ b/help/en_US/symphony.xml @@ -33,85 +33,168 @@ - Parameters + Input Parameters nbVar : - a double, number of variables. + A double, representing the number of variables. nbCon : - a double, number of constraints. + A double, representing the number of constraints. c : - a vector of double, represents coefficients of the variables in the objective. + A vector of doubles, representing the coefficients of the variables in the objective. isInt : - a vector of boolean, represents wether a variable is constrained to be an integer. + A vector of booleans, representing whether a variable is constrained to be an integer. lb : - a vector of double, represents lower bounds of the variables. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - a vector of double, represents upper bounds of the variables. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. A : - a matrix of double, represents matrix representing the constraint matrix conLB ≤ A⋅x ≤ conUB. + A matrix of double, representing the constraint matrix in conLB ≤ A⋅x ≤ conUB. conLB : - a vector of double, represents lower bounds of the constraints conLB ≤ A⋅x ≤ conUB. + A vector of double, representing the lower bounds of the constraints conLB ≤ A⋅x ≤ conUB. conUB : - a vector of double, represents upper bounds of the constraints conLB ≤ A⋅x ≤ conUB. + A vector of double, representing the upper bounds of the constraints conLB ≤ A⋅x ≤ conUB. objSense : The sense (maximization/minimization) of the objective. Use 1(sym_minimize ) or -1 (sym_maximize) here. options : - a list containing the parameters to be set. + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a double, the value of the function at x. - status : - status flag returned from symphony.See below for details. + A double, containing the value of the function at x. + status : + The status flag returned from symphony. See below for details. output : - The output data structure contains detailed information about the optimization process. See below for details. + A structure, containing the information about the optimization. See below for details. Description -Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by : +Search the minimum or maximum of a constrained mixed integer linear programming optimization problem specified by: - + \begin{eqnarray} -&\mbox{min}_{x} -& f^T⋅x \\ -& \text{subject to} & conLB \leq A⋅x \leq conUB \\ -& & lb \leq x \leq ub \\ -& & x_i \in \!\, \mathbb{Z}, i \in \!\, I +\mbox{min}_{x}\ f^{T} \boldsymbol{\cdot} x \\ +\text{Subjected to: }\\ + conLB \leq A \boldsymbol{\cdot} x \leq conUB \\ +lb \leq x \leq ub \\ +x_{i} \in \!\, \mathbb{Z}, i \in \!\, I \end{eqnarray} - + + + +The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation. + + Options +The options should be defined as type "list" and consist of over a hundred fields, the most important ones of which have been detailed here: + -The routine calls SYMPHONY written in C by gateway files for the actual computation. + + node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution. + time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take. + gap_limit : A scalar, representing the target gap limit allowed for solution. +granularity : A scalar, “the minimum difference between two distinct objective function values + +node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take. +prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance. +do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not. + -The status allows to know the status of the optimization which is given back by Ipopt. +The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below: -status=227 : Optimal Solution Found -status=228 : Maximum CPU Time exceeded. -status=229 : Maximum Number of Node Limit Exceeded. -status=230 : Maximum Number of Iterations Limit Exceeded. +227 : Optimal Solution Found +228 : Maximum CPU Time exceeded. +229 : Maximum Number of Node Limit Exceeded. +230 : Maximum Number of Iterations Limit Exceeded. -For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/ +For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. + +A few examples displaying the various functionalities of symphony have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + + +\begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +0 &\leq x_{1} &\leq 1\\ +0 &\leq x_{2} &\leq 1\\ +0 &\leq x_{3} &\leq 1\\ +0 &\leq x_{4} &\leq 1\\ +0 &\leq x_{5} &\leq \infty\\ +0 &\leq x_{6} &\leq \infty\\ +0 &\leq x_{7} &\leq \infty\\ +0 &\leq x_{8} &\leq \infty +\end{eqnarray}\\ +\text{With constraint bounds as: }\\ +\begin{eqnarray} +25 &\leq c_{1} &\leq 25\\ +1.25 &\leq c_{2} &\leq 1.25\\ +1.25 &\leq c_{3} &\leq 1.25\\ +\end{eqnarray} + + + + + - Examples + Example + +Here we provide the sense (maximization/minimization) of the objective and show how we can further enhance the functionality of symphony by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation. + + + - Examples + Example + + An advanced example for Symphony. + + + +\begin{eqnarray} +\mbox{max}_{x}\ sum_{j=1,...,n} P_{j} \boldsymbol{\cdot} x_{j} \\ +\text{Where P is specified below.} \\ +\end{eqnarray}\\ +\\ +\text{Subjected to:}\\ +\begin{eqnarray} +sum{j=1,...,n} r_{i,j} \boldsymbol{\cdot} x_{j} &\leq b_{i}\\ +\end{eqnarray}\\ +\text{Where r and b are specified below.} \\ +\begin{eqnarray} +x_{j} = 0 &\text{OR}& x_{j} = 1 +\end{eqnarray} + + + + - Parameters + Input Parameters c : - a vector of double, contains coefficients of the variables in the objective + A vector of doubles, containing the coefficients of the variables in the objective function. intcon : - Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable. + A vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 to n where n is the number of variable. A : - a matrix of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A matrix of doubles, containing the coefficients of linear inequality constraints of size (m X n) where 'm' is the number of linear inequality constraints. b : - a vector of double, represents the linear coefficients in the inequality constraints A⋅x ≤ b. + A vector of doubles, related to 'A' and represents the linear coefficients in the linear inequality constraints of size (m X 1). Aeq : - a matrix of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A matrix of doubles, containing the coefficients of linear equality constraints of size (m1 X n) where 'm1' is the number of linear equality constraints. beq : - a vector of double, represents the linear coefficients in the equality constraints Aeq⋅x = beq. + A vector of double, vector of doubles, related to 'Aeq' and represents the linear coefficients in the equality constraints of size (m1 X 1). lb : - Lower bounds, specified as a vector or array of double. lb represents the lower bounds elementwise in lb ≤ x ≤ ub. + A vector of doubles, containing the lower bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. ub : - Upper bounds, specified as a vector or array of double. ub represents the upper bounds elementwise in lb ≤ x ≤ ub. + A vector of doubles, containing the upper bounds of the variables of size (1 X n) or (n X 1) where 'n' is the number of variables. options : - a list containing the parameters to be set. + A list, containing the option for user to specify. See below for details. + + + + Outputs + xopt : - a vector of double, the computed solution of the optimization problem. + A vector of doubles, containing the computed solution of the optimization problem. fopt : - a double, the value of the function at x. + A double, containing the value of the function at x. status : - status flag returned from symphony. See below for details. + The status flag returned from symphony. See below for details. output : - The output data structure contains detailed information about the optimization process. See below for details. + A structure, containing the information about the optimization. See below for details. @@ -72,36 +77,52 @@ Search the minimum or maximum of a constrained mixed integer linear programming -\begin{eqnarray} -&\mbox{min}_{x} -& C^T⋅x \\ -& \text{subject to} & A⋅x \leq b \\ -& & Aeq⋅x = beq \\ -& & lb \leq x \leq ub \\ -& & x_i \in \!\, \mathbb{Z}, i \in \!\, I + \begin{eqnarray} + \mbox{min}_{x} +C^T⋅x \\ +\text{Subjected to: } A⋅x \leq b \\ +Aeq⋅x = beq \\ + lb \leq x \leq ub \\ +x_{i} \in \!\, \mathbb{Z}, i \in \!\, I \end{eqnarray} -The routine calls SYMPHONY written in C by gateway files for the actual computation. +The routine calls SYMPHONY, a solver for mixed-integer linear programs written in C, for the actual computation. + + + Options +The options should be defined as type "list" and consist of over a hundred fields, the most important ones of which have been detailed here: + + + + node_limit : A scalar, specifying the max. number of nodes allowed to be analyzed during the solution. + time_limit : A scalar, specifying the maximum amount of CPU time in seconds that the solver should take. + gap_limit : A scalar, representing the target gap limit allowed for solution. +granularity : A scalar, “the minimum difference between two distinct objective function values + +node_selection_rule : A Scalar, specifying the maximum number of iterations that the solver should take. +prep_level : An integer, that determines the level of preprocessing that should be done on the current MILP instance. +do_branch_and_cut : A boolean, representing the decision whether to run the branch and cut algorithm or not. + -The status allows to know the status of the optimization which is given back by Ipopt. +The status allows the user to know the status of the optimization which is returned by Symphony. The values it can take and what they indicate is described below: -status=227 : Optimal Solution Found -status=228 : Maximum CPU Time exceeded. -status=229 : Maximum Number of Node Limit Exceeded. -status=230 : Maximum Number of Iterations Limit Exceeded. +227 : Optimal Solution Found +228 : Maximum CPU Time exceeded. +229 : Maximum Number of Node Limit Exceeded. +230 : Maximum Number of Iterations Limit Exceeded. -For more details on status see the symphony documentation, go to http://www.coin-or.org/SYMPHONY/man-5.6/ +For more details on the status, see the symphony documentation which can be found on http://www.coin-or.org/SYMPHONY/man-5.6/ -The output data structure contains detailed informations about the optimization process. -It has type "struct" and contains the following fields. +The output data structure contains detailed information about the optimization process. +It is of type "struct" and contains the following fields. -output.iterations: The number of iterations performed during the search +output.iterations: The number of iterations performed. @@ -109,114 +130,274 @@ It has type "struct" and contains the following fields. - Examples + Example + + Here we solve a simple objective function, subjected to three linear inequality constraints. + + +Find x in R^8 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&\leq 100\\ +\hspace{70pt} &1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&\leq 205\\ +\hspace{70pt} &1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&\leq 409\\ +\end{eqnarray}\\ +\text{With integer constraints as: } +\begin{eqnarray} +\begin{array}{cccccc} +[1 & 2 & 3 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + +A few examples displaying the various functionalities of symphonymat have been provided below. You will find a series of problems and the appropriate code snippets to solve them. + + + Example + +Here we build up on the previous example by adding upper and lower bounds to the variables. +We add the following bounds to the problem specified above: + + +\begin{eqnarray} +0 &\leq x_{1} &\leq 1\\ +0 &\leq x_{2} &\leq 1\\ +0 &\leq x_{3} &\leq 1\\ +0 &\leq x_{4} &\leq 1\\ +0 &\leq x_{5} &\leq \infty\\ +0 &\leq x_{6} &\leq \infty\\ +0 &\leq x_{7} &\leq \infty\\ +0 &\leq x_{8} &\leq \infty +\end{eqnarray} + + + + + + + Example + +In this example, we proceed to add the linear equality constraints to the objective function. + + + + +\begin{eqnarray} +\hspace{1pt} &5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&= 25\\ +\hspace{1pt} &0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&= 1.25\\ +\hspace{1pt} &0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&= 1.25\\ +\end{eqnarray} + + - Examples + Example + +In this example, we further enhance the functionality of symphonymat by setting input options. This provides us with the ability to control the solver parameters such as the maximum number of solver iterations and the max. CPU time allowed for the computation. + + + + + + Example + +Primal Infeasible Problems: Find x in R^8 such that it minimizes: + + +Find x in R^8 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &6x_{1} + 4.25x_{2} + 5.5x_{3} + 7.75x_{4} + 3x_{5} + 3.25x_{6} + 3.5x_{7} + 3.75x_{8}&\leq 26.333\\ +\hspace{70pt} &1.25x_{1} + 1.37x_{2} + 1.7x_{3} + 1.93x_{4} + 2.08x_{5} + 2.32x_{6} + 2.56x_{7} + 2.78x_{8}&\leq 3.916\\ +\hspace{70pt} &1.15x_{1} + 1.34x_{2} + 1.66x_{3} + 1.99x_{4} + 2.06x_{5} + 2.32x_{6} + 2.58x_{7} + 2.84x_{8}&\leq 5.249\\ +\end{eqnarray}\\ +\text{With integer constraints as: } +\begin{eqnarray} +\begin{array}{cccc} +[1 & 2 & 3 & 4] +\end{array} +\end{eqnarray} + + + + + + + Example + +Unbounded Problems. Find x in R^8 such that it minimizes: + + + + \begin{eqnarray} +\mbox{min}_{x}\ f(x) = 1750x_{1} + 990x_{2} + 1240x_{3} + 1680x_{4} + 500x_{5} + 450x_{6} + 400x_{7} + 100x_{8} \\ +\end{eqnarray}\\ +\text{Subjected to:}\\ +\begin{eqnarray} +\hspace{70pt} &5x_{1} + 3x_{2} + 4x_{3} + 6x_{4} + x_{5} + x_{6} + x_{7} + x_{8}&= 25\\ +\hspace{70pt} &0.25x_{1} + 0.12x_{2} + 0.2x_{3} + 0.18x_{4} + 0.08x_{5} + 0.07x_{6} + 0.06x_{7} + 0.03x_{8}&= 1.25\\ +\hspace{70pt} &0.15x_{1} + 0.09x_{2} + 0.16x_{3} + 0.24x_{4} + 0.06x_{5} + 0.07x_{6} + 0.08x_{7} + 0.09x_{8}&= 1.25\\ +\end{eqnarray}\\ +\text{With integer constraints as: } +\begin{eqnarray} +\begin{array}{cccc} +[1 & 2 & 3 & 4] \\ +\end{array} +\end{eqnarray} + + + + + + + Authors -- cgit