<strong>DOTcvpSB</strong>: a <strong>Matlab</strong> <strong>Toolbox</strong> <strong>for</strong> <strong>Dynamic</strong> <strong>Optimization</strong> <strong>in</strong> <strong>Systems</strong> Biology2. FMINCON [10] (F<strong>in</strong>d MINimum of CONstra<strong>in</strong>ed nonl<strong>in</strong>ear multivariable function) is a part of theMATLAB optimization toolbox which uses sequential quadratic programm<strong>in</strong>g (SQP);3. MISQP [14] (Mixed-Integer Sequential Quadratic Programm<strong>in</strong>g) solves mixed-<strong>in</strong>teger non-l<strong>in</strong>ear programm<strong>in</strong>gproblems by a modified sequential quadratic programm<strong>in</strong>g method;• stochastic global1. DE [30] (Differential Evolution) uses population based approach <strong>for</strong> m<strong>in</strong>imiz<strong>in</strong>g the per<strong>for</strong>mance <strong>in</strong>dex;2. SRES [26] (Stochastic Rank<strong>in</strong>g Evolution Strategy) uses an evolution strategy comb<strong>in</strong>ed with an approachto balance objective and penalty functions;• and hybrid metaheuristics1. ACOmi [29] (Ant Colony <strong>Optimization</strong> <strong>for</strong> Mixed Integer nonl<strong>in</strong>ear programm<strong>in</strong>g problems) is <strong>in</strong>spiredby ants <strong>for</strong>ag<strong>in</strong>g behavior and <strong>for</strong> the local search it uses MISQP;2. MITS [13] (Mixed-Integer Tabu Search algorithm) is based on extensions of the metaheuristic TabuSearch algorithm and <strong>for</strong> local search it uses MISQP too;where the determ<strong>in</strong>istic MISQP solver and all hybrid solvers are able to handle mixed-<strong>in</strong>teger problems directly.The problem is automatically re<strong>for</strong>mulated on the basis of user’s option.1.4 NUMERICAL SIMULATION METHOD (IVP SOLVERS)Forward <strong>in</strong>tegration of the ODE, Jacobian, and sensitivities if it is needed is ensured by CVODES, a part ofSUNDIALS [17], which is able to per<strong>for</strong>m the simultaneous or staggered sensitivity analysis too. The IVP problemcan be solved with the Newton or Functional iteration module and with the Adams or BDF l<strong>in</strong>ear multistep method(LMM). The Adams method is recommended <strong>for</strong> solv<strong>in</strong>g of the non-stiff problems while BDF is recommended<strong>for</strong> solv<strong>in</strong>g of the stiff problems. Note that the sensitivity equations are provided analytically and the error controlstrategy <strong>for</strong> the sensitivity variables could be enabled.Figure 1.1 – Organization of the toolbox code.Page – 9
<strong>DOTcvpSB</strong>: a <strong>Matlab</strong> <strong>Toolbox</strong> <strong>for</strong> <strong>Dynamic</strong> <strong>Optimization</strong> <strong>in</strong> <strong>Systems</strong> BiologyThe organization of the toolbox code is shown <strong>in</strong> Figure 1.1 where the toolbox files have the name: ’dotcvp_’and the temporary files: ’temp_’. Note that the temporary files are generated and later deleted automatically,because they are problem dependent. F<strong>in</strong>ally it is needed to emphasize that DOTcvp conta<strong>in</strong>s packages that are anopen-source.1.5 RECOMMENDED OPERATING PROCEDUREIt should be noted that, <strong>for</strong> a general MIDO <strong>for</strong>mulation, there is no a priori way to dist<strong>in</strong>guish if theresult<strong>in</strong>g MINLP will be convex or not, so the user has no clue on which optimization strategy should be us<strong>in</strong>g.Thus, we recommend that, <strong>for</strong> any new problem, the user follows this protocol:• Step 1: try solv<strong>in</strong>g the problem with the s<strong>in</strong>gle optimization strategy and a local determ<strong>in</strong>istic method, suchas FMINCON or IPOPT <strong>for</strong> DO problems, or MISQP <strong>for</strong> MIDO problems, us<strong>in</strong>g a rather crude controldiscretization (e.g. 10 elements). After obta<strong>in</strong><strong>in</strong>g a solution, repeat chang<strong>in</strong>g the <strong>in</strong>itial guess <strong>for</strong> the controlvariable. If a rather different solution is obta<strong>in</strong>ed, suspect multimodality and go to step 2 below. If not, solvethe problem aga<strong>in</strong> us<strong>in</strong>g a f<strong>in</strong>er discretization. For faster and more satisfactory results regard<strong>in</strong>g controldiscretization, use the successive re-optimization module.• Step 2: solve the problem us<strong>in</strong>g the multi-start optimization module. In general 100 runs is a sensiblenumber <strong>for</strong> this task, but <strong>for</strong> costly problems the user might want to reduce this. Plott<strong>in</strong>g an histogram ofthe result<strong>in</strong>g set of solutions will give a good view of the problem multimodality. For clearly multimodalproblems, go to step 3. If not, stop, or go back to step 1 if e.g. more ref<strong>in</strong>ed control levels are desired.• Step 3: use the s<strong>in</strong>gle optimization strategy as <strong>in</strong> step 1, but use a global stochastic method, like DE or SRES<strong>for</strong> DO problems, or ACOmi or MITS <strong>for</strong> MIDO problems. If satisfactory results are obta<strong>in</strong>ed <strong>in</strong> reasonablecomputation times, stop. If the computational cost is excessive, go to step 4.• Step 4: use a hybrid global-local strategy. More advanced users can tweak the different options to <strong>in</strong>creaseefficiency and/or robustness.This protocol is especially recommended <strong>for</strong> novel users who are not familiar with numerical optimizationmethods. Advanced users can tweak the hybrid strategy options, or even create their own strategies comb<strong>in</strong><strong>in</strong>gcalls to the different solvers <strong>in</strong> a MATLAB script.1.6 TOOLBOX DOWNLOADThe toolbox can be downloaded from the a<strong>for</strong>e mentioned web page. The name of the toolbox is as follows:’DOTcvp_RXXXX_YN.zip’. The letters mean:XXXX - [number] represents the toolbox year versionY - [letter] represents the major changes, usually the changes <strong>in</strong> the <strong>in</strong>put fileN - [number] represents the m<strong>in</strong>or changes1.7 TOOLBOX INSTALLATIONThe <strong>in</strong>stallation procedure consists of several steps listed below:1. If you have an older <strong>in</strong>stallation of DOTcvp, please remove it. This helps to avoid possible compatibilityproblems.2. Unzip the packed file <strong>in</strong>to any directory. To unzip the toolbox the user needs a password which is free toreceive. The unziped file conta<strong>in</strong>s the name and date when the ’zip’ package was created. This helps torecognize a new package of the toolbox. It is recommended to use the latest version of the toolbox.3. You can try to download and use some demonstrative examples from a<strong>for</strong>e mentioned web page and extractthem <strong>in</strong>to a ’dotcvp_examples’ directory. Of course any different directory can be used.4. The next step is the toolbox <strong>in</strong>stallation. First, you should start MATLAB and change to the directory whereDOTcvp was unpacked, and then run ’dotcvp_<strong>in</strong>stall.m’ <strong>in</strong>stall file. If everyth<strong>in</strong>g is all right the user will seethe follow<strong>in</strong>g output procedure:Page – 10