• No results found

matlab optimization

N/A
N/A
Protected

Academic year: 2021

Share "matlab optimization"

Copied!
14
0
0

Loading.... (view fulltext now)

Full text

(1)

Matlab Optimization

Matlab Optimization

1.

1.

Optimization toolbox

Optimization toolbox

2.

2.

Solution of linear programs

Solution of linear programs

3.

3.

Metabolic flux balance analysis example

Metabolic flux balance analysis example

4.

4.

Solution of nonlinear programs

Solution of nonlinear programs

5.

(2)

Matlab Optimization Toolbox

Minimization

bintprog Solve binary integer programming problems

fgoalattain Solve multiobjective goal attainment problems

fminbnd Find minimum of single-variable function on fixed interval

fmincon Find minimum of constrained nonlinear multivariable function

fminimax Solve minimax constraint problem

fminsearch Find minimum of unconstrained multivariable function using derivative-free method

fminunc Find minimum of unconstrained multivariable function

fseminf Find minimum of semi-infinitely constrained multivariable nonlinear function

linprog Solve linear programming problems

quadprog Solve quadratic programming problems

Least Squares

lsqcurvefit Solve nonlinear curve-fitting (data-fitting) problems in least-squares sense

lsqlin Solve constrained linear least-squares problems

lsqnonlin Solve nonlinear least-squares (nonlinear data-fitting) problems

(3)

Linear Programming (LP)

Optimization of a linear objective function with linear 

equality and/or inequality constraints

Standard LP form:

Matrix

A

must have more columns than rows

(under-determined problem)

Common solvers: CPLEX, MOSEK, GLPK 

Further information

0 x b Ax x c x

: subject to min T  http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html

x – vector of variables to be determined (decision variables) A – matrix of known coefficients

b – vector of known coefficients

c – vector of weights

(4)

Matlab LP Solver:

linprog

 Solves linear programming (LP) problems of the form:

 Syntax:

x = linprog(f,A,b,Aeq,beq,lb,ub)

Set A=[]and b=[]if no inequality constraints exist Set Aeq=[]and beq=[]if no equality constraints exist Replace f with -f to find the maximum

 Defaults to a large-scale interior point method with options for a

medium-scale simplex method variation or the simplex method

 See

help linprog

for additional details and options ub  x lb beq  x  Aeq b  x  A  x  f  T   x

: subject to min

(5)

Metabolic Network Model

Intracellular reaction pathways describing carbon metabolism

» Consumption of carbon energy sources (e.g. glucose)

» Conversion of carbon sources to biomass precursors (cell growth) » Secretion of byproducts (e.g. ethanol)

» Each node corresponds to a metabolite

» Each path (line) corresponds to a reaction

Stoichiometric matrix,

A

» Row for each intracellular species (m rows) » Column for each reaction (n columns)

» The entry at the ith row and jth column (a

i,j) corresponds to the

stoichiometric coefficient of species ‘i’ participating in reaction ‘j’ » Av = 0, stoichiometric balance on the metabolites where v is the

vector of reaction fluxes

 –  More reactions (unknowns) than species (equations)

 –  Solution requires either enough measurements for the system to

(6)

Flux Balance Analysis (FBA)

 Linear programming (optimization) approach for resolving an

under-determined metabolic network model

 Objective function based on an assumed cellular objective such as

maximization of growth

 LP formulation:

 Growth rate, m, represented as a linear combination of intracellular 

fluxes of the biomass precursors

 Flux bounds represent physiochemical or thermodynamic constraints

on the reaction fluxes

» Extracellular conditions place limits on fluxes (e.g. oxygen availability) » Thermodynamics constrain the direction a reaction may proceed:

reversible or irreversible

 The solution is the set of fluxes that maximizes cellular growth while

satisfying the bounds and stoichiometric constraints

U   L T  v v v v  Av v w

0 : subject to max m 

(7)

 Download the stoichiometric matrix to the

Matlab working directory and load into Matlab

>> load A.txt

 Specify the indices of key fluxes: glucose,

ethanol, oxygen, and biomass

>> ig = 22; ie = 20; >> io = 19; imu = 17;  Av = 0 >> [m n] = size(A); >> b = zeros(m,1);  Objective function >> w = zeros(n,1); >> w(imu) = 1;

 Specify flux bounds (all fluxes irreversible,

glucose uptake fixed)

>> vb = [zeros(n,1) Inf*ones(n,1)];

Flux Balance Analysis Example

 Yeast metabolic network model from HW #2

 Slightly modified to improve suitability for Flux Balance Analysis

(FBA)

 19x22 stoichiometric matrix

 Under-determined with 3 degrees of freedom

 Use FBA to determine solution corresponding to optimal cell growth  Solve the LP

>> v = linprog(-w,[],[],A,b,vb(:,1),vb(:,2)); Optimization terminated.

 View predictions for growth, oxygen uptake, and ethanol

secretion

>> mu = w'*v, vo2 = v(io), ve = v(ie) mu = 101.9302 vo2 = 108.3712 ve = 2.4147e-014

 All calculated values relative to a fixed glucose uptake rate

(8)

FBA Example cont.

 Determine sensitivity of model predictions to the oxygen uptake

rate to assess the tradeoff between achievable ethanol yields and cellular growth

 Create a vector of oxygen uptake rates to be considered

>> vo = 1:1:125;

 Implement a forloop to iterate over each entry in the oxygen

uptake vector (vo). For each iteration (inside the loop), update the upper bound* on oxygen uptake, solve the LP, and store the solution (mu, ve)

>> for i=1:length(vo) vb(io,2) = vo(i); v = linprog(-w,[],[],A,b,vb(:,1),vb(:,2)); mu(i) = w'*v; ve(i) = v(ie); end

 Plot the results

>> plot(vo,mu,vo,ve); >> xlabel('Oxygen Flux')

>> legend('Growth Rate','Ethanol Flux)

  Notice the tradeoff between cell growth and ethanol production.

Highest ethanol productivity is achieved in batch fermentation  by initially operating aerobically to rapidly increase cell density

then switching to anaerobic conditions to produce ethanol.

(9)

Nonlinear Programming (NLP)

Optimization of a nonlinear objective function with

nonlinear equality and/or inequality constraints

Standard NLP form:

System must have more variables than equality constraints

(under-determined problem)

Common solvers: CONOPT, NPSOL

 Non-convex problems can converge to a local optimum

x – vector of variables to be determined (decision variables) h(x) – vector function of equality constraints

g(x) – vector function of inequality constraints

 f (x) – scalar objective function

0

x

g

0

x

h

x

x

)

(

)

(

:

subject to

)

(

min f  

(10)

 Nonlinear least-squares: lsqnonlin

x = lsqnonlin(@fun,x0,lb,ub)

where fun is a user-defined function that returns the vector value F ( x) ,

x0 is the initial guess (starting point), and lb and ub are the bounds on x

 Constrained nonlinear multivariable optimization : fmincon

where x, b, beq, lb, and ub are vectors, A and Aeq are matrices, c( x) and ceq( x) are functions that return vectors, and f ( x) is a function that returns a scalar 

x = fmincon(@fun,x0,A,b,Aeq,beq,lb,ub,@cfun)

where funis the function for  f ( x) and cfunis a function that returns c( x) and ceq( x)

f = fun(x) [c,ceq] = cfun(x)

Matlab NLP Solvers:

lsqnonlin

and

fmincon

ub  x lb beq  x  Aeq b  x  A  x ceq  x c  x  f    x         0 ) ( 0 ) ( : s.t. ) ( min 2 2 3 2 2 1 2 1 2 ) ( ) ( ) ( ) ( ) ( min  f    x  f    x  f    x  f    x  f  n x n i i  x     

               ) ( ) ( ) ( ) ( ) ( 32 1  x  f    x  f    x  f    x  f    x  F  n 

(11)

Batch Fermentation Example

Parameter estimation problem for penicillin fermentation

Model equations

» Batch cell growth is modeled by the logistic law

where y1 is the cell concentration, k 1 is the growth constant & k 2 is the cessation (limiting nutrient) constant

» Penicillin production is modeled as

where y2 is the penicillin concentration, k 3 is the production constant & k 4 is the degradation (hydrolysis) constant

Dynamic parameter estimation

» Use experimental data from two batch penicillin fermentations

» Find values for the unknown parameters (k 1, k 2, k 3, k 4) that minimize the

sum of squared errors between the data & model predictions



 

 



 

 

2 1 1 1 1

1

 y

 y

dt 

dy

2 4 1 3 2

 y

 y

dt 

dy

(12)

Matlab Exercise: Batch Data Sets

Cell Penicillin Cell Penicillin Time concentration concentration concentration concentration (hours) (% dry weight) (units/mL) (% dry weight) (units/mL)

0 0.4 0 0.18 0 10 0 0.12 0 22 0.99 0.0089 0.48 0.0089 34 0.0732 1.46 0.0642 46 1.95 0.1446 1.56 0.2266 58 0.523 1.73 0.4373 70 2.52 0.6854 1.99 0.6943 82 1.2566 2.62 1.2459 94 3.09 1.6118 2.88 1.4315 106 1.8243 3.43 2.0402 118 4.06 2.217 3.37 1.9278 130 2.2758 3.92 2.1848 142 4.48 2.8096 3.96 2.4204 154 2.6846 3.58 2.4615 166 4.25 2.8738 3.58 2.283 178 2.8345 3.34 2.7078 190 4.36 2.8828 3.47 2.6542 Batch 1 Batch 2

(13)

 Load & plot the experimental data:

 Choose an initial guess, integrate the model, & plot the simulated profiles:

 Estimate parameter values that minimize the sum of squared errors between

the experimental measurements & model predictions:

Matlab Exercise: Solution

>> pendat = xlsread('penicillin.xls'); >> tdat = pendat(:,1); >> ydat = pendat(:,2:end); >> plot(tdat,ydat,'o'); >> xlabel('Time [h]'); >> ylabel('Concentration'); >> k0 = [0.1 4 0.01 0.01]; >> y0 = [0.29 0]; >> ts = [min(tdat) max(tdat)];

>> dy = @(t,y,k) [k(1)*y(1)*(1-y(1)/k(2)); k(3)*y(1)-k(4)*y(2)]; >> [tsim,ysim] = ode45(dy,ts,y0,[],k0);

>> hold on, plot(tsim,ysim,':');

>> options = optimset('Display','iter');

>> k = lsqnonlin(@simerr,k0,[],[],options,dy,ts,y0,tdat,ydat); >> [tsim,ysim] = ode45(dy,ts,y0,[],k);

(14)

Matlab Exercise: simerr.m

function e = simerr(k0,dy,ts,y0,tdat,ydat)

% Integrate the model

sol = ode45(dy,ts,y0,[],k0);

% Evaluate solution at the data points y = deval(sol,tdat)';

% Error between data and model e = ydat - y;

% Find missing measurements n = find(isnan(ydat));

% Zero error for missing measurements if ~isempty(n)

e(n) = zeros(size(n)); end 

References

Related documents

And the objective of the research is to prove that reciprocal teaching technique can improve reading comprehension of the second year students of SMA Negeri 2

With the scenario given above in mind, we contrast two APIs that are based upon the same programming language and virtual machine - Java core reflection and the Java Debugger

By means of Monte Carlo pricing experiments, we show that the time-dependent FX-SABR model enables an accurate and consistent pricing of barrier options and outperforms

hybrid bioreactor landfill, the combination of semi-aerobic and anaerobic phases resulted effective in removing the organic matter; then, aerobic phase further

Our contribution is two-fold: 1) After discussion of related work, we present the design process and implementation of Weavr Dota 2 Companion, a fully functional companion app for

The World Health Organisation’s International Classification of Diseases system (ICD-10) definition 1 of Post-Traumatic Stress Disorder (PTSD) states that this disorder arises as

Avg. borrowers repaying loans per school 510 393 Avg. 1994 fall enrollees per school 2,788 4,412 Defaulted borrowers as percentage of enrollees 4.1% 0.7% Borrowers in repayment

SAFETY DATA SHEET STARPATCH CONCRETE PRODUCTS1. TECHNIK DECORATIVE CONCRETE PRODUCTS